genetic programming - poznań university of technology 3/wmio-gp.pdf · genetic programming...

84

Upload: hoangquynh

Post on 07-Jul-2018

239 views

Category:

Documents


0 download

TRANSCRIPT

Genetic Programming

Krzysztof KrawiecTomasz Pawlak

Laboratory of Intelligent Decision Support SystemsInstitute of Computing Science Poznan University of Technology Poznalaquo Poland

httpwwwcsputpoznanplkkrawiec

1

Introduction

Introduction 2

Outline and objectives

1 Introduction GP as a variant of EC

2 Specic features of GP

3 Variants of GP

4 Applications

5 Some theory

6 Case studies

Introduction 3

Bilbiography

Koza J R Genetic Programming On the Programming of Computers by Meansof Natural Selection MIT Press 1992

A Field Guide to Genetic Programming (ISBN 978-1-4092-0073-4)httpwwwgp-eld-guideorguk

Langdon W B Genetic Programming and Data Structures GeneticProgramming + Data Structures = Automatic Programming Kluwer 1998

Langdon W B amp Poli R Foundations of Genetic Programming Springer-Verlag2002

Riolo R L Soule T amp Worzel B (ed) Genetic Programming Theory andPractice V Springer 2007

Riolo R McConaghy T amp Vladislavleva E (ed) Genetic Programming Theoryand Practice VIII Springer 2010

See httpwwwcsbhamacuk~wblbiblio

Introduction 4

Acknowledgment

Credits go to

A Field Guide to Genetic Programming httpwwwgp-field-guideorguk

[42]

Introduction 5

Background

Background 6

Evolutionary Computation (EC)

Heuristic bio-inspired global search algorithms

Operate on populations of candidate solutions

Candidate solutions are encoded as genotypes

Genotypes get decoded into phenotypes when evaluated by the tness function fbeing optimized

Formulation

plowast = argmaxpisinP

f (p)

where

P is the considered space (search space) of candidate solutions (solutions forshort)

f is a (maximized) tness function

plowast is an optimal solution (an ideal) that maximizes f

Background 7

Generic evolutionary algorithm

Evolutionary Algorithm

Population P of individuals

Evaluation

Selection

Mutation and recombination

Initialization of population P

Solutionindividual s

f(s)

Output Best solution s+

Termination criteria

Fitness function f

Background 8

[Unique] characteristic of EC

Black-box optimization (f primes dependency on the independent variables does nothave to be known or meet any criteria)

Fining an optimum cannot be guaranteed but in practice a well-performingsuboptimal solution is often satisfactory

Importance of crossover a recombination operator that makes the solutionsexchange certain elements (variable values features)

Without crossover parallel stochastic local search

Background 9

What is genetic programming

What is genetic programming 10

Genetic programming

In a nutshell

A variant of EC where the genotypes represent programs ie entities capable ofreading in input data and producing some output data in response to that input

Fitness function f measures the similarity of the output produced by the programto the desired output given as a part of task statement

Standard representation expression trees

Important implication Additional input required by the algorithm (compared to EC)

Set of instructions (programming language of consideration)

Data to run the programs on

What is genetic programming 11

Conceptual preliminaries of GP Space of candidate solutions P

Candidate solutions p isin P evolving under the selection pressure of the tnessfunction f are themselves functions of the form p I rarrO

I and O are respectively the spaces of input data and output data accepted andproduced by programs from P

Cardinality of |P| is typically large or innite

The set of program inputs I even if nite is usually so large that running eachcandidate solution on all possible inputs becomes intractable

GP algorithms typically evaluate solutions on a sample I prime sub I |I prime| |I | of possibleinputs and tness is only an approximate estimate of solution quality

The task is given as a set of tness cases ie pairs (xi yi ) isin I timesO where xiusually comprises one or more independent variables and yi is the output variable

What is genetic programming 12

Conceptual preliminaries Fitness function f

In most cases (and most real-world applications of GP) tness function fmeasures the similarity of the output produced by the program to the desiredoutput given as a part of task statement

Then tness can be expressed as a monotonous function of the divergence ofprograms output from the desired one for instance as

f (p) =minussumi

||yi minusp(xi )|| (1)

where

p(xi ) is the output produced by program p for the input data xi

|| middot || is a metric in the output space O

i iterates over all tness cases

What is genetic programming 13

Conceptual preliminaries Character of candidate solutions

The candidate solutions in GP are being assembled from elementary entities calledinstructions

A part of formulation of a GP task is then also an instruction set I ie a set ofsymbols used by the search algorithm to compose the programs (candidatesolutions)

Design of I usually requires some background knowledge

In particular it should comprise all instructions necessary to nd solution to theproblem posed (closure)

What is genetic programming 14

Genetic programming

Main evolution loop (`vanilla GP)

1 procedure GeneticProgramming(f I ) f - tness function I - instruction set2 P larrplarrRandomProgram(I ) Initialize population3 repeat Main loop over generations4 for p isinP do Evaluation5 pf larr f (p) pf is a `eld in program p that stores its tness6 end for7 P prime larr 0 Next population8 repeat Breeding loop9 p1 larrTournamentSelection(P) First parent10 p2 larrTournamentSelection(P) Second parent11 (o1 o2)larrCrossover(p1 p2)12 o1 larrMutation(o1 I )13 o2 larrMutation(o2 I )14 P prime larrP prime cupo1 o215 until |P prime|= |P|16 P larrP prime

17 until StoppingCondition(P)18 return argmaxpisinP pf

19 end procedure

What is genetic programming 15

Crossover

Crossover exchange of randomly selected subexpressions (subtree swapping crossover)

1 function Crossover(p1 p2)2 repeat3 s1 larr Random node in p14 s2 larr Random node in p25 (pprime

1pprime2)larr Swap subtrees rooted in s1 and s2

6 until Depth(pprime1)lt dmax andDepth(pprime2)lt dmax dmax is the tree depth

limit7 return (pprime

1pprime2)

8 end function

What is genetic programming 16

Mutation

Mutation replace a randomly selected subexpression with a new randomly generatedsubexpression

1 function Mutation(pI )2 repeat3 slarr Random node in p

4 s prime larrRandomProgram(I )5 pprime larr Replace the subtree rooted in s with s prime

6 until Depth(pprime)lt dmax dmax is the tree depth limit7 return pprime

8 end function

What is genetic programming 17

Exemplary run Setup

Objective Find program whose output matches x2+x+1 over the range [minus11]Such tasks can be considered as a form of regressionAs solutions are built by manipulating code (instructions) this is referred to assymbolic regression

Fitness sum of absolute errors for x isin minus10minus09 0910In other words the set of tness cases is

xi -10 -09 0 09 10

yi 1 091 1 271 3

What is genetic programming 18

Exemplary run Setup

Instruction set

Nonterminal (function) set + - (protected division) and lowast all operating onoatsTerminal set x and constants chosen randomly between -5 and +5

Selection tness proportionate (roulette wheel) non elitist

Initial pop ramped half-and-half (depth 1 to 2 50 of terminals are constants)

(to be explained later)

Parameters

population size 450 subtree crossover25 reproduction25 subtree mutation no tree size limits

Termination when an individual with tness better than 01 found

What is genetic programming 19

Initial population (population 0)

What is genetic programming 20

Fitness assignment for population 0

Fitness values f(a)=77 f(b)=110 f(c)=1798 f(d)=287

What is genetic programming 21

Breeding

Assume

a gets reproduced

c gets mutated (at loci 2)

a and d get crossed-over

a and b get crossed over

What is genetic programming 22

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Introduction

Introduction 2

Outline and objectives

1 Introduction GP as a variant of EC

2 Specic features of GP

3 Variants of GP

4 Applications

5 Some theory

6 Case studies

Introduction 3

Bilbiography

Koza J R Genetic Programming On the Programming of Computers by Meansof Natural Selection MIT Press 1992

A Field Guide to Genetic Programming (ISBN 978-1-4092-0073-4)httpwwwgp-eld-guideorguk

Langdon W B Genetic Programming and Data Structures GeneticProgramming + Data Structures = Automatic Programming Kluwer 1998

Langdon W B amp Poli R Foundations of Genetic Programming Springer-Verlag2002

Riolo R L Soule T amp Worzel B (ed) Genetic Programming Theory andPractice V Springer 2007

Riolo R McConaghy T amp Vladislavleva E (ed) Genetic Programming Theoryand Practice VIII Springer 2010

See httpwwwcsbhamacuk~wblbiblio

Introduction 4

Acknowledgment

Credits go to

A Field Guide to Genetic Programming httpwwwgp-field-guideorguk

[42]

Introduction 5

Background

Background 6

Evolutionary Computation (EC)

Heuristic bio-inspired global search algorithms

Operate on populations of candidate solutions

Candidate solutions are encoded as genotypes

Genotypes get decoded into phenotypes when evaluated by the tness function fbeing optimized

Formulation

plowast = argmaxpisinP

f (p)

where

P is the considered space (search space) of candidate solutions (solutions forshort)

f is a (maximized) tness function

plowast is an optimal solution (an ideal) that maximizes f

Background 7

Generic evolutionary algorithm

Evolutionary Algorithm

Population P of individuals

Evaluation

Selection

Mutation and recombination

Initialization of population P

Solutionindividual s

f(s)

Output Best solution s+

Termination criteria

Fitness function f

Background 8

[Unique] characteristic of EC

Black-box optimization (f primes dependency on the independent variables does nothave to be known or meet any criteria)

Fining an optimum cannot be guaranteed but in practice a well-performingsuboptimal solution is often satisfactory

Importance of crossover a recombination operator that makes the solutionsexchange certain elements (variable values features)

Without crossover parallel stochastic local search

Background 9

What is genetic programming

What is genetic programming 10

Genetic programming

In a nutshell

A variant of EC where the genotypes represent programs ie entities capable ofreading in input data and producing some output data in response to that input

Fitness function f measures the similarity of the output produced by the programto the desired output given as a part of task statement

Standard representation expression trees

Important implication Additional input required by the algorithm (compared to EC)

Set of instructions (programming language of consideration)

Data to run the programs on

What is genetic programming 11

Conceptual preliminaries of GP Space of candidate solutions P

Candidate solutions p isin P evolving under the selection pressure of the tnessfunction f are themselves functions of the form p I rarrO

I and O are respectively the spaces of input data and output data accepted andproduced by programs from P

Cardinality of |P| is typically large or innite

The set of program inputs I even if nite is usually so large that running eachcandidate solution on all possible inputs becomes intractable

GP algorithms typically evaluate solutions on a sample I prime sub I |I prime| |I | of possibleinputs and tness is only an approximate estimate of solution quality

The task is given as a set of tness cases ie pairs (xi yi ) isin I timesO where xiusually comprises one or more independent variables and yi is the output variable

What is genetic programming 12

Conceptual preliminaries Fitness function f

In most cases (and most real-world applications of GP) tness function fmeasures the similarity of the output produced by the program to the desiredoutput given as a part of task statement

Then tness can be expressed as a monotonous function of the divergence ofprograms output from the desired one for instance as

f (p) =minussumi

||yi minusp(xi )|| (1)

where

p(xi ) is the output produced by program p for the input data xi

|| middot || is a metric in the output space O

i iterates over all tness cases

What is genetic programming 13

Conceptual preliminaries Character of candidate solutions

The candidate solutions in GP are being assembled from elementary entities calledinstructions

A part of formulation of a GP task is then also an instruction set I ie a set ofsymbols used by the search algorithm to compose the programs (candidatesolutions)

Design of I usually requires some background knowledge

In particular it should comprise all instructions necessary to nd solution to theproblem posed (closure)

What is genetic programming 14

Genetic programming

Main evolution loop (`vanilla GP)

1 procedure GeneticProgramming(f I ) f - tness function I - instruction set2 P larrplarrRandomProgram(I ) Initialize population3 repeat Main loop over generations4 for p isinP do Evaluation5 pf larr f (p) pf is a `eld in program p that stores its tness6 end for7 P prime larr 0 Next population8 repeat Breeding loop9 p1 larrTournamentSelection(P) First parent10 p2 larrTournamentSelection(P) Second parent11 (o1 o2)larrCrossover(p1 p2)12 o1 larrMutation(o1 I )13 o2 larrMutation(o2 I )14 P prime larrP prime cupo1 o215 until |P prime|= |P|16 P larrP prime

17 until StoppingCondition(P)18 return argmaxpisinP pf

19 end procedure

What is genetic programming 15

Crossover

Crossover exchange of randomly selected subexpressions (subtree swapping crossover)

1 function Crossover(p1 p2)2 repeat3 s1 larr Random node in p14 s2 larr Random node in p25 (pprime

1pprime2)larr Swap subtrees rooted in s1 and s2

6 until Depth(pprime1)lt dmax andDepth(pprime2)lt dmax dmax is the tree depth

limit7 return (pprime

1pprime2)

8 end function

What is genetic programming 16

Mutation

Mutation replace a randomly selected subexpression with a new randomly generatedsubexpression

1 function Mutation(pI )2 repeat3 slarr Random node in p

4 s prime larrRandomProgram(I )5 pprime larr Replace the subtree rooted in s with s prime

6 until Depth(pprime)lt dmax dmax is the tree depth limit7 return pprime

8 end function

What is genetic programming 17

Exemplary run Setup

Objective Find program whose output matches x2+x+1 over the range [minus11]Such tasks can be considered as a form of regressionAs solutions are built by manipulating code (instructions) this is referred to assymbolic regression

Fitness sum of absolute errors for x isin minus10minus09 0910In other words the set of tness cases is

xi -10 -09 0 09 10

yi 1 091 1 271 3

What is genetic programming 18

Exemplary run Setup

Instruction set

Nonterminal (function) set + - (protected division) and lowast all operating onoatsTerminal set x and constants chosen randomly between -5 and +5

Selection tness proportionate (roulette wheel) non elitist

Initial pop ramped half-and-half (depth 1 to 2 50 of terminals are constants)

(to be explained later)

Parameters

population size 450 subtree crossover25 reproduction25 subtree mutation no tree size limits

Termination when an individual with tness better than 01 found

What is genetic programming 19

Initial population (population 0)

What is genetic programming 20

Fitness assignment for population 0

Fitness values f(a)=77 f(b)=110 f(c)=1798 f(d)=287

What is genetic programming 21

Breeding

Assume

a gets reproduced

c gets mutated (at loci 2)

a and d get crossed-over

a and b get crossed over

What is genetic programming 22

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Outline and objectives

1 Introduction GP as a variant of EC

2 Specic features of GP

3 Variants of GP

4 Applications

5 Some theory

6 Case studies

Introduction 3

Bilbiography

Koza J R Genetic Programming On the Programming of Computers by Meansof Natural Selection MIT Press 1992

A Field Guide to Genetic Programming (ISBN 978-1-4092-0073-4)httpwwwgp-eld-guideorguk

Langdon W B Genetic Programming and Data Structures GeneticProgramming + Data Structures = Automatic Programming Kluwer 1998

Langdon W B amp Poli R Foundations of Genetic Programming Springer-Verlag2002

Riolo R L Soule T amp Worzel B (ed) Genetic Programming Theory andPractice V Springer 2007

Riolo R McConaghy T amp Vladislavleva E (ed) Genetic Programming Theoryand Practice VIII Springer 2010

See httpwwwcsbhamacuk~wblbiblio

Introduction 4

Acknowledgment

Credits go to

A Field Guide to Genetic Programming httpwwwgp-field-guideorguk

[42]

Introduction 5

Background

Background 6

Evolutionary Computation (EC)

Heuristic bio-inspired global search algorithms

Operate on populations of candidate solutions

Candidate solutions are encoded as genotypes

Genotypes get decoded into phenotypes when evaluated by the tness function fbeing optimized

Formulation

plowast = argmaxpisinP

f (p)

where

P is the considered space (search space) of candidate solutions (solutions forshort)

f is a (maximized) tness function

plowast is an optimal solution (an ideal) that maximizes f

Background 7

Generic evolutionary algorithm

Evolutionary Algorithm

Population P of individuals

Evaluation

Selection

Mutation and recombination

Initialization of population P

Solutionindividual s

f(s)

Output Best solution s+

Termination criteria

Fitness function f

Background 8

[Unique] characteristic of EC

Black-box optimization (f primes dependency on the independent variables does nothave to be known or meet any criteria)

Fining an optimum cannot be guaranteed but in practice a well-performingsuboptimal solution is often satisfactory

Importance of crossover a recombination operator that makes the solutionsexchange certain elements (variable values features)

Without crossover parallel stochastic local search

Background 9

What is genetic programming

What is genetic programming 10

Genetic programming

In a nutshell

A variant of EC where the genotypes represent programs ie entities capable ofreading in input data and producing some output data in response to that input

Fitness function f measures the similarity of the output produced by the programto the desired output given as a part of task statement

Standard representation expression trees

Important implication Additional input required by the algorithm (compared to EC)

Set of instructions (programming language of consideration)

Data to run the programs on

What is genetic programming 11

Conceptual preliminaries of GP Space of candidate solutions P

Candidate solutions p isin P evolving under the selection pressure of the tnessfunction f are themselves functions of the form p I rarrO

I and O are respectively the spaces of input data and output data accepted andproduced by programs from P

Cardinality of |P| is typically large or innite

The set of program inputs I even if nite is usually so large that running eachcandidate solution on all possible inputs becomes intractable

GP algorithms typically evaluate solutions on a sample I prime sub I |I prime| |I | of possibleinputs and tness is only an approximate estimate of solution quality

The task is given as a set of tness cases ie pairs (xi yi ) isin I timesO where xiusually comprises one or more independent variables and yi is the output variable

What is genetic programming 12

Conceptual preliminaries Fitness function f

In most cases (and most real-world applications of GP) tness function fmeasures the similarity of the output produced by the program to the desiredoutput given as a part of task statement

Then tness can be expressed as a monotonous function of the divergence ofprograms output from the desired one for instance as

f (p) =minussumi

||yi minusp(xi )|| (1)

where

p(xi ) is the output produced by program p for the input data xi

|| middot || is a metric in the output space O

i iterates over all tness cases

What is genetic programming 13

Conceptual preliminaries Character of candidate solutions

The candidate solutions in GP are being assembled from elementary entities calledinstructions

A part of formulation of a GP task is then also an instruction set I ie a set ofsymbols used by the search algorithm to compose the programs (candidatesolutions)

Design of I usually requires some background knowledge

In particular it should comprise all instructions necessary to nd solution to theproblem posed (closure)

What is genetic programming 14

Genetic programming

Main evolution loop (`vanilla GP)

1 procedure GeneticProgramming(f I ) f - tness function I - instruction set2 P larrplarrRandomProgram(I ) Initialize population3 repeat Main loop over generations4 for p isinP do Evaluation5 pf larr f (p) pf is a `eld in program p that stores its tness6 end for7 P prime larr 0 Next population8 repeat Breeding loop9 p1 larrTournamentSelection(P) First parent10 p2 larrTournamentSelection(P) Second parent11 (o1 o2)larrCrossover(p1 p2)12 o1 larrMutation(o1 I )13 o2 larrMutation(o2 I )14 P prime larrP prime cupo1 o215 until |P prime|= |P|16 P larrP prime

17 until StoppingCondition(P)18 return argmaxpisinP pf

19 end procedure

What is genetic programming 15

Crossover

Crossover exchange of randomly selected subexpressions (subtree swapping crossover)

1 function Crossover(p1 p2)2 repeat3 s1 larr Random node in p14 s2 larr Random node in p25 (pprime

1pprime2)larr Swap subtrees rooted in s1 and s2

6 until Depth(pprime1)lt dmax andDepth(pprime2)lt dmax dmax is the tree depth

limit7 return (pprime

1pprime2)

8 end function

What is genetic programming 16

Mutation

Mutation replace a randomly selected subexpression with a new randomly generatedsubexpression

1 function Mutation(pI )2 repeat3 slarr Random node in p

4 s prime larrRandomProgram(I )5 pprime larr Replace the subtree rooted in s with s prime

6 until Depth(pprime)lt dmax dmax is the tree depth limit7 return pprime

8 end function

What is genetic programming 17

Exemplary run Setup

Objective Find program whose output matches x2+x+1 over the range [minus11]Such tasks can be considered as a form of regressionAs solutions are built by manipulating code (instructions) this is referred to assymbolic regression

Fitness sum of absolute errors for x isin minus10minus09 0910In other words the set of tness cases is

xi -10 -09 0 09 10

yi 1 091 1 271 3

What is genetic programming 18

Exemplary run Setup

Instruction set

Nonterminal (function) set + - (protected division) and lowast all operating onoatsTerminal set x and constants chosen randomly between -5 and +5

Selection tness proportionate (roulette wheel) non elitist

Initial pop ramped half-and-half (depth 1 to 2 50 of terminals are constants)

(to be explained later)

Parameters

population size 450 subtree crossover25 reproduction25 subtree mutation no tree size limits

Termination when an individual with tness better than 01 found

What is genetic programming 19

Initial population (population 0)

What is genetic programming 20

Fitness assignment for population 0

Fitness values f(a)=77 f(b)=110 f(c)=1798 f(d)=287

What is genetic programming 21

Breeding

Assume

a gets reproduced

c gets mutated (at loci 2)

a and d get crossed-over

a and b get crossed over

What is genetic programming 22

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Bilbiography

Koza J R Genetic Programming On the Programming of Computers by Meansof Natural Selection MIT Press 1992

A Field Guide to Genetic Programming (ISBN 978-1-4092-0073-4)httpwwwgp-eld-guideorguk

Langdon W B Genetic Programming and Data Structures GeneticProgramming + Data Structures = Automatic Programming Kluwer 1998

Langdon W B amp Poli R Foundations of Genetic Programming Springer-Verlag2002

Riolo R L Soule T amp Worzel B (ed) Genetic Programming Theory andPractice V Springer 2007

Riolo R McConaghy T amp Vladislavleva E (ed) Genetic Programming Theoryand Practice VIII Springer 2010

See httpwwwcsbhamacuk~wblbiblio

Introduction 4

Acknowledgment

Credits go to

A Field Guide to Genetic Programming httpwwwgp-field-guideorguk

[42]

Introduction 5

Background

Background 6

Evolutionary Computation (EC)

Heuristic bio-inspired global search algorithms

Operate on populations of candidate solutions

Candidate solutions are encoded as genotypes

Genotypes get decoded into phenotypes when evaluated by the tness function fbeing optimized

Formulation

plowast = argmaxpisinP

f (p)

where

P is the considered space (search space) of candidate solutions (solutions forshort)

f is a (maximized) tness function

plowast is an optimal solution (an ideal) that maximizes f

Background 7

Generic evolutionary algorithm

Evolutionary Algorithm

Population P of individuals

Evaluation

Selection

Mutation and recombination

Initialization of population P

Solutionindividual s

f(s)

Output Best solution s+

Termination criteria

Fitness function f

Background 8

[Unique] characteristic of EC

Black-box optimization (f primes dependency on the independent variables does nothave to be known or meet any criteria)

Fining an optimum cannot be guaranteed but in practice a well-performingsuboptimal solution is often satisfactory

Importance of crossover a recombination operator that makes the solutionsexchange certain elements (variable values features)

Without crossover parallel stochastic local search

Background 9

What is genetic programming

What is genetic programming 10

Genetic programming

In a nutshell

A variant of EC where the genotypes represent programs ie entities capable ofreading in input data and producing some output data in response to that input

Fitness function f measures the similarity of the output produced by the programto the desired output given as a part of task statement

Standard representation expression trees

Important implication Additional input required by the algorithm (compared to EC)

Set of instructions (programming language of consideration)

Data to run the programs on

What is genetic programming 11

Conceptual preliminaries of GP Space of candidate solutions P

Candidate solutions p isin P evolving under the selection pressure of the tnessfunction f are themselves functions of the form p I rarrO

I and O are respectively the spaces of input data and output data accepted andproduced by programs from P

Cardinality of |P| is typically large or innite

The set of program inputs I even if nite is usually so large that running eachcandidate solution on all possible inputs becomes intractable

GP algorithms typically evaluate solutions on a sample I prime sub I |I prime| |I | of possibleinputs and tness is only an approximate estimate of solution quality

The task is given as a set of tness cases ie pairs (xi yi ) isin I timesO where xiusually comprises one or more independent variables and yi is the output variable

What is genetic programming 12

Conceptual preliminaries Fitness function f

In most cases (and most real-world applications of GP) tness function fmeasures the similarity of the output produced by the program to the desiredoutput given as a part of task statement

Then tness can be expressed as a monotonous function of the divergence ofprograms output from the desired one for instance as

f (p) =minussumi

||yi minusp(xi )|| (1)

where

p(xi ) is the output produced by program p for the input data xi

|| middot || is a metric in the output space O

i iterates over all tness cases

What is genetic programming 13

Conceptual preliminaries Character of candidate solutions

The candidate solutions in GP are being assembled from elementary entities calledinstructions

A part of formulation of a GP task is then also an instruction set I ie a set ofsymbols used by the search algorithm to compose the programs (candidatesolutions)

Design of I usually requires some background knowledge

In particular it should comprise all instructions necessary to nd solution to theproblem posed (closure)

What is genetic programming 14

Genetic programming

Main evolution loop (`vanilla GP)

1 procedure GeneticProgramming(f I ) f - tness function I - instruction set2 P larrplarrRandomProgram(I ) Initialize population3 repeat Main loop over generations4 for p isinP do Evaluation5 pf larr f (p) pf is a `eld in program p that stores its tness6 end for7 P prime larr 0 Next population8 repeat Breeding loop9 p1 larrTournamentSelection(P) First parent10 p2 larrTournamentSelection(P) Second parent11 (o1 o2)larrCrossover(p1 p2)12 o1 larrMutation(o1 I )13 o2 larrMutation(o2 I )14 P prime larrP prime cupo1 o215 until |P prime|= |P|16 P larrP prime

17 until StoppingCondition(P)18 return argmaxpisinP pf

19 end procedure

What is genetic programming 15

Crossover

Crossover exchange of randomly selected subexpressions (subtree swapping crossover)

1 function Crossover(p1 p2)2 repeat3 s1 larr Random node in p14 s2 larr Random node in p25 (pprime

1pprime2)larr Swap subtrees rooted in s1 and s2

6 until Depth(pprime1)lt dmax andDepth(pprime2)lt dmax dmax is the tree depth

limit7 return (pprime

1pprime2)

8 end function

What is genetic programming 16

Mutation

Mutation replace a randomly selected subexpression with a new randomly generatedsubexpression

1 function Mutation(pI )2 repeat3 slarr Random node in p

4 s prime larrRandomProgram(I )5 pprime larr Replace the subtree rooted in s with s prime

6 until Depth(pprime)lt dmax dmax is the tree depth limit7 return pprime

8 end function

What is genetic programming 17

Exemplary run Setup

Objective Find program whose output matches x2+x+1 over the range [minus11]Such tasks can be considered as a form of regressionAs solutions are built by manipulating code (instructions) this is referred to assymbolic regression

Fitness sum of absolute errors for x isin minus10minus09 0910In other words the set of tness cases is

xi -10 -09 0 09 10

yi 1 091 1 271 3

What is genetic programming 18

Exemplary run Setup

Instruction set

Nonterminal (function) set + - (protected division) and lowast all operating onoatsTerminal set x and constants chosen randomly between -5 and +5

Selection tness proportionate (roulette wheel) non elitist

Initial pop ramped half-and-half (depth 1 to 2 50 of terminals are constants)

(to be explained later)

Parameters

population size 450 subtree crossover25 reproduction25 subtree mutation no tree size limits

Termination when an individual with tness better than 01 found

What is genetic programming 19

Initial population (population 0)

What is genetic programming 20

Fitness assignment for population 0

Fitness values f(a)=77 f(b)=110 f(c)=1798 f(d)=287

What is genetic programming 21

Breeding

Assume

a gets reproduced

c gets mutated (at loci 2)

a and d get crossed-over

a and b get crossed over

What is genetic programming 22

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Acknowledgment

Credits go to

A Field Guide to Genetic Programming httpwwwgp-field-guideorguk

[42]

Introduction 5

Background

Background 6

Evolutionary Computation (EC)

Heuristic bio-inspired global search algorithms

Operate on populations of candidate solutions

Candidate solutions are encoded as genotypes

Genotypes get decoded into phenotypes when evaluated by the tness function fbeing optimized

Formulation

plowast = argmaxpisinP

f (p)

where

P is the considered space (search space) of candidate solutions (solutions forshort)

f is a (maximized) tness function

plowast is an optimal solution (an ideal) that maximizes f

Background 7

Generic evolutionary algorithm

Evolutionary Algorithm

Population P of individuals

Evaluation

Selection

Mutation and recombination

Initialization of population P

Solutionindividual s

f(s)

Output Best solution s+

Termination criteria

Fitness function f

Background 8

[Unique] characteristic of EC

Black-box optimization (f primes dependency on the independent variables does nothave to be known or meet any criteria)

Fining an optimum cannot be guaranteed but in practice a well-performingsuboptimal solution is often satisfactory

Importance of crossover a recombination operator that makes the solutionsexchange certain elements (variable values features)

Without crossover parallel stochastic local search

Background 9

What is genetic programming

What is genetic programming 10

Genetic programming

In a nutshell

A variant of EC where the genotypes represent programs ie entities capable ofreading in input data and producing some output data in response to that input

Fitness function f measures the similarity of the output produced by the programto the desired output given as a part of task statement

Standard representation expression trees

Important implication Additional input required by the algorithm (compared to EC)

Set of instructions (programming language of consideration)

Data to run the programs on

What is genetic programming 11

Conceptual preliminaries of GP Space of candidate solutions P

Candidate solutions p isin P evolving under the selection pressure of the tnessfunction f are themselves functions of the form p I rarrO

I and O are respectively the spaces of input data and output data accepted andproduced by programs from P

Cardinality of |P| is typically large or innite

The set of program inputs I even if nite is usually so large that running eachcandidate solution on all possible inputs becomes intractable

GP algorithms typically evaluate solutions on a sample I prime sub I |I prime| |I | of possibleinputs and tness is only an approximate estimate of solution quality

The task is given as a set of tness cases ie pairs (xi yi ) isin I timesO where xiusually comprises one or more independent variables and yi is the output variable

What is genetic programming 12

Conceptual preliminaries Fitness function f

In most cases (and most real-world applications of GP) tness function fmeasures the similarity of the output produced by the program to the desiredoutput given as a part of task statement

Then tness can be expressed as a monotonous function of the divergence ofprograms output from the desired one for instance as

f (p) =minussumi

||yi minusp(xi )|| (1)

where

p(xi ) is the output produced by program p for the input data xi

|| middot || is a metric in the output space O

i iterates over all tness cases

What is genetic programming 13

Conceptual preliminaries Character of candidate solutions

The candidate solutions in GP are being assembled from elementary entities calledinstructions

A part of formulation of a GP task is then also an instruction set I ie a set ofsymbols used by the search algorithm to compose the programs (candidatesolutions)

Design of I usually requires some background knowledge

In particular it should comprise all instructions necessary to nd solution to theproblem posed (closure)

What is genetic programming 14

Genetic programming

Main evolution loop (`vanilla GP)

1 procedure GeneticProgramming(f I ) f - tness function I - instruction set2 P larrplarrRandomProgram(I ) Initialize population3 repeat Main loop over generations4 for p isinP do Evaluation5 pf larr f (p) pf is a `eld in program p that stores its tness6 end for7 P prime larr 0 Next population8 repeat Breeding loop9 p1 larrTournamentSelection(P) First parent10 p2 larrTournamentSelection(P) Second parent11 (o1 o2)larrCrossover(p1 p2)12 o1 larrMutation(o1 I )13 o2 larrMutation(o2 I )14 P prime larrP prime cupo1 o215 until |P prime|= |P|16 P larrP prime

17 until StoppingCondition(P)18 return argmaxpisinP pf

19 end procedure

What is genetic programming 15

Crossover

Crossover exchange of randomly selected subexpressions (subtree swapping crossover)

1 function Crossover(p1 p2)2 repeat3 s1 larr Random node in p14 s2 larr Random node in p25 (pprime

1pprime2)larr Swap subtrees rooted in s1 and s2

6 until Depth(pprime1)lt dmax andDepth(pprime2)lt dmax dmax is the tree depth

limit7 return (pprime

1pprime2)

8 end function

What is genetic programming 16

Mutation

Mutation replace a randomly selected subexpression with a new randomly generatedsubexpression

1 function Mutation(pI )2 repeat3 slarr Random node in p

4 s prime larrRandomProgram(I )5 pprime larr Replace the subtree rooted in s with s prime

6 until Depth(pprime)lt dmax dmax is the tree depth limit7 return pprime

8 end function

What is genetic programming 17

Exemplary run Setup

Objective Find program whose output matches x2+x+1 over the range [minus11]Such tasks can be considered as a form of regressionAs solutions are built by manipulating code (instructions) this is referred to assymbolic regression

Fitness sum of absolute errors for x isin minus10minus09 0910In other words the set of tness cases is

xi -10 -09 0 09 10

yi 1 091 1 271 3

What is genetic programming 18

Exemplary run Setup

Instruction set

Nonterminal (function) set + - (protected division) and lowast all operating onoatsTerminal set x and constants chosen randomly between -5 and +5

Selection tness proportionate (roulette wheel) non elitist

Initial pop ramped half-and-half (depth 1 to 2 50 of terminals are constants)

(to be explained later)

Parameters

population size 450 subtree crossover25 reproduction25 subtree mutation no tree size limits

Termination when an individual with tness better than 01 found

What is genetic programming 19

Initial population (population 0)

What is genetic programming 20

Fitness assignment for population 0

Fitness values f(a)=77 f(b)=110 f(c)=1798 f(d)=287

What is genetic programming 21

Breeding

Assume

a gets reproduced

c gets mutated (at loci 2)

a and d get crossed-over

a and b get crossed over

What is genetic programming 22

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Background

Background 6

Evolutionary Computation (EC)

Heuristic bio-inspired global search algorithms

Operate on populations of candidate solutions

Candidate solutions are encoded as genotypes

Genotypes get decoded into phenotypes when evaluated by the tness function fbeing optimized

Formulation

plowast = argmaxpisinP

f (p)

where

P is the considered space (search space) of candidate solutions (solutions forshort)

f is a (maximized) tness function

plowast is an optimal solution (an ideal) that maximizes f

Background 7

Generic evolutionary algorithm

Evolutionary Algorithm

Population P of individuals

Evaluation

Selection

Mutation and recombination

Initialization of population P

Solutionindividual s

f(s)

Output Best solution s+

Termination criteria

Fitness function f

Background 8

[Unique] characteristic of EC

Black-box optimization (f primes dependency on the independent variables does nothave to be known or meet any criteria)

Fining an optimum cannot be guaranteed but in practice a well-performingsuboptimal solution is often satisfactory

Importance of crossover a recombination operator that makes the solutionsexchange certain elements (variable values features)

Without crossover parallel stochastic local search

Background 9

What is genetic programming

What is genetic programming 10

Genetic programming

In a nutshell

A variant of EC where the genotypes represent programs ie entities capable ofreading in input data and producing some output data in response to that input

Fitness function f measures the similarity of the output produced by the programto the desired output given as a part of task statement

Standard representation expression trees

Important implication Additional input required by the algorithm (compared to EC)

Set of instructions (programming language of consideration)

Data to run the programs on

What is genetic programming 11

Conceptual preliminaries of GP Space of candidate solutions P

Candidate solutions p isin P evolving under the selection pressure of the tnessfunction f are themselves functions of the form p I rarrO

I and O are respectively the spaces of input data and output data accepted andproduced by programs from P

Cardinality of |P| is typically large or innite

The set of program inputs I even if nite is usually so large that running eachcandidate solution on all possible inputs becomes intractable

GP algorithms typically evaluate solutions on a sample I prime sub I |I prime| |I | of possibleinputs and tness is only an approximate estimate of solution quality

The task is given as a set of tness cases ie pairs (xi yi ) isin I timesO where xiusually comprises one or more independent variables and yi is the output variable

What is genetic programming 12

Conceptual preliminaries Fitness function f

In most cases (and most real-world applications of GP) tness function fmeasures the similarity of the output produced by the program to the desiredoutput given as a part of task statement

Then tness can be expressed as a monotonous function of the divergence ofprograms output from the desired one for instance as

f (p) =minussumi

||yi minusp(xi )|| (1)

where

p(xi ) is the output produced by program p for the input data xi

|| middot || is a metric in the output space O

i iterates over all tness cases

What is genetic programming 13

Conceptual preliminaries Character of candidate solutions

The candidate solutions in GP are being assembled from elementary entities calledinstructions

A part of formulation of a GP task is then also an instruction set I ie a set ofsymbols used by the search algorithm to compose the programs (candidatesolutions)

Design of I usually requires some background knowledge

In particular it should comprise all instructions necessary to nd solution to theproblem posed (closure)

What is genetic programming 14

Genetic programming

Main evolution loop (`vanilla GP)

1 procedure GeneticProgramming(f I ) f - tness function I - instruction set2 P larrplarrRandomProgram(I ) Initialize population3 repeat Main loop over generations4 for p isinP do Evaluation5 pf larr f (p) pf is a `eld in program p that stores its tness6 end for7 P prime larr 0 Next population8 repeat Breeding loop9 p1 larrTournamentSelection(P) First parent10 p2 larrTournamentSelection(P) Second parent11 (o1 o2)larrCrossover(p1 p2)12 o1 larrMutation(o1 I )13 o2 larrMutation(o2 I )14 P prime larrP prime cupo1 o215 until |P prime|= |P|16 P larrP prime

17 until StoppingCondition(P)18 return argmaxpisinP pf

19 end procedure

What is genetic programming 15

Crossover

Crossover exchange of randomly selected subexpressions (subtree swapping crossover)

1 function Crossover(p1 p2)2 repeat3 s1 larr Random node in p14 s2 larr Random node in p25 (pprime

1pprime2)larr Swap subtrees rooted in s1 and s2

6 until Depth(pprime1)lt dmax andDepth(pprime2)lt dmax dmax is the tree depth

limit7 return (pprime

1pprime2)

8 end function

What is genetic programming 16

Mutation

Mutation replace a randomly selected subexpression with a new randomly generatedsubexpression

1 function Mutation(pI )2 repeat3 slarr Random node in p

4 s prime larrRandomProgram(I )5 pprime larr Replace the subtree rooted in s with s prime

6 until Depth(pprime)lt dmax dmax is the tree depth limit7 return pprime

8 end function

What is genetic programming 17

Exemplary run Setup

Objective Find program whose output matches x2+x+1 over the range [minus11]Such tasks can be considered as a form of regressionAs solutions are built by manipulating code (instructions) this is referred to assymbolic regression

Fitness sum of absolute errors for x isin minus10minus09 0910In other words the set of tness cases is

xi -10 -09 0 09 10

yi 1 091 1 271 3

What is genetic programming 18

Exemplary run Setup

Instruction set

Nonterminal (function) set + - (protected division) and lowast all operating onoatsTerminal set x and constants chosen randomly between -5 and +5

Selection tness proportionate (roulette wheel) non elitist

Initial pop ramped half-and-half (depth 1 to 2 50 of terminals are constants)

(to be explained later)

Parameters

population size 450 subtree crossover25 reproduction25 subtree mutation no tree size limits

Termination when an individual with tness better than 01 found

What is genetic programming 19

Initial population (population 0)

What is genetic programming 20

Fitness assignment for population 0

Fitness values f(a)=77 f(b)=110 f(c)=1798 f(d)=287

What is genetic programming 21

Breeding

Assume

a gets reproduced

c gets mutated (at loci 2)

a and d get crossed-over

a and b get crossed over

What is genetic programming 22

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Evolutionary Computation (EC)

Heuristic bio-inspired global search algorithms

Operate on populations of candidate solutions

Candidate solutions are encoded as genotypes

Genotypes get decoded into phenotypes when evaluated by the tness function fbeing optimized

Formulation

plowast = argmaxpisinP

f (p)

where

P is the considered space (search space) of candidate solutions (solutions forshort)

f is a (maximized) tness function

plowast is an optimal solution (an ideal) that maximizes f

Background 7

Generic evolutionary algorithm

Evolutionary Algorithm

Population P of individuals

Evaluation

Selection

Mutation and recombination

Initialization of population P

Solutionindividual s

f(s)

Output Best solution s+

Termination criteria

Fitness function f

Background 8

[Unique] characteristic of EC

Black-box optimization (f primes dependency on the independent variables does nothave to be known or meet any criteria)

Fining an optimum cannot be guaranteed but in practice a well-performingsuboptimal solution is often satisfactory

Importance of crossover a recombination operator that makes the solutionsexchange certain elements (variable values features)

Without crossover parallel stochastic local search

Background 9

What is genetic programming

What is genetic programming 10

Genetic programming

In a nutshell

A variant of EC where the genotypes represent programs ie entities capable ofreading in input data and producing some output data in response to that input

Fitness function f measures the similarity of the output produced by the programto the desired output given as a part of task statement

Standard representation expression trees

Important implication Additional input required by the algorithm (compared to EC)

Set of instructions (programming language of consideration)

Data to run the programs on

What is genetic programming 11

Conceptual preliminaries of GP Space of candidate solutions P

Candidate solutions p isin P evolving under the selection pressure of the tnessfunction f are themselves functions of the form p I rarrO

I and O are respectively the spaces of input data and output data accepted andproduced by programs from P

Cardinality of |P| is typically large or innite

The set of program inputs I even if nite is usually so large that running eachcandidate solution on all possible inputs becomes intractable

GP algorithms typically evaluate solutions on a sample I prime sub I |I prime| |I | of possibleinputs and tness is only an approximate estimate of solution quality

The task is given as a set of tness cases ie pairs (xi yi ) isin I timesO where xiusually comprises one or more independent variables and yi is the output variable

What is genetic programming 12

Conceptual preliminaries Fitness function f

In most cases (and most real-world applications of GP) tness function fmeasures the similarity of the output produced by the program to the desiredoutput given as a part of task statement

Then tness can be expressed as a monotonous function of the divergence ofprograms output from the desired one for instance as

f (p) =minussumi

||yi minusp(xi )|| (1)

where

p(xi ) is the output produced by program p for the input data xi

|| middot || is a metric in the output space O

i iterates over all tness cases

What is genetic programming 13

Conceptual preliminaries Character of candidate solutions

The candidate solutions in GP are being assembled from elementary entities calledinstructions

A part of formulation of a GP task is then also an instruction set I ie a set ofsymbols used by the search algorithm to compose the programs (candidatesolutions)

Design of I usually requires some background knowledge

In particular it should comprise all instructions necessary to nd solution to theproblem posed (closure)

What is genetic programming 14

Genetic programming

Main evolution loop (`vanilla GP)

1 procedure GeneticProgramming(f I ) f - tness function I - instruction set2 P larrplarrRandomProgram(I ) Initialize population3 repeat Main loop over generations4 for p isinP do Evaluation5 pf larr f (p) pf is a `eld in program p that stores its tness6 end for7 P prime larr 0 Next population8 repeat Breeding loop9 p1 larrTournamentSelection(P) First parent10 p2 larrTournamentSelection(P) Second parent11 (o1 o2)larrCrossover(p1 p2)12 o1 larrMutation(o1 I )13 o2 larrMutation(o2 I )14 P prime larrP prime cupo1 o215 until |P prime|= |P|16 P larrP prime

17 until StoppingCondition(P)18 return argmaxpisinP pf

19 end procedure

What is genetic programming 15

Crossover

Crossover exchange of randomly selected subexpressions (subtree swapping crossover)

1 function Crossover(p1 p2)2 repeat3 s1 larr Random node in p14 s2 larr Random node in p25 (pprime

1pprime2)larr Swap subtrees rooted in s1 and s2

6 until Depth(pprime1)lt dmax andDepth(pprime2)lt dmax dmax is the tree depth

limit7 return (pprime

1pprime2)

8 end function

What is genetic programming 16

Mutation

Mutation replace a randomly selected subexpression with a new randomly generatedsubexpression

1 function Mutation(pI )2 repeat3 slarr Random node in p

4 s prime larrRandomProgram(I )5 pprime larr Replace the subtree rooted in s with s prime

6 until Depth(pprime)lt dmax dmax is the tree depth limit7 return pprime

8 end function

What is genetic programming 17

Exemplary run Setup

Objective Find program whose output matches x2+x+1 over the range [minus11]Such tasks can be considered as a form of regressionAs solutions are built by manipulating code (instructions) this is referred to assymbolic regression

Fitness sum of absolute errors for x isin minus10minus09 0910In other words the set of tness cases is

xi -10 -09 0 09 10

yi 1 091 1 271 3

What is genetic programming 18

Exemplary run Setup

Instruction set

Nonterminal (function) set + - (protected division) and lowast all operating onoatsTerminal set x and constants chosen randomly between -5 and +5

Selection tness proportionate (roulette wheel) non elitist

Initial pop ramped half-and-half (depth 1 to 2 50 of terminals are constants)

(to be explained later)

Parameters

population size 450 subtree crossover25 reproduction25 subtree mutation no tree size limits

Termination when an individual with tness better than 01 found

What is genetic programming 19

Initial population (population 0)

What is genetic programming 20

Fitness assignment for population 0

Fitness values f(a)=77 f(b)=110 f(c)=1798 f(d)=287

What is genetic programming 21

Breeding

Assume

a gets reproduced

c gets mutated (at loci 2)

a and d get crossed-over

a and b get crossed over

What is genetic programming 22

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Generic evolutionary algorithm

Evolutionary Algorithm

Population P of individuals

Evaluation

Selection

Mutation and recombination

Initialization of population P

Solutionindividual s

f(s)

Output Best solution s+

Termination criteria

Fitness function f

Background 8

[Unique] characteristic of EC

Black-box optimization (f primes dependency on the independent variables does nothave to be known or meet any criteria)

Fining an optimum cannot be guaranteed but in practice a well-performingsuboptimal solution is often satisfactory

Importance of crossover a recombination operator that makes the solutionsexchange certain elements (variable values features)

Without crossover parallel stochastic local search

Background 9

What is genetic programming

What is genetic programming 10

Genetic programming

In a nutshell

A variant of EC where the genotypes represent programs ie entities capable ofreading in input data and producing some output data in response to that input

Fitness function f measures the similarity of the output produced by the programto the desired output given as a part of task statement

Standard representation expression trees

Important implication Additional input required by the algorithm (compared to EC)

Set of instructions (programming language of consideration)

Data to run the programs on

What is genetic programming 11

Conceptual preliminaries of GP Space of candidate solutions P

Candidate solutions p isin P evolving under the selection pressure of the tnessfunction f are themselves functions of the form p I rarrO

I and O are respectively the spaces of input data and output data accepted andproduced by programs from P

Cardinality of |P| is typically large or innite

The set of program inputs I even if nite is usually so large that running eachcandidate solution on all possible inputs becomes intractable

GP algorithms typically evaluate solutions on a sample I prime sub I |I prime| |I | of possibleinputs and tness is only an approximate estimate of solution quality

The task is given as a set of tness cases ie pairs (xi yi ) isin I timesO where xiusually comprises one or more independent variables and yi is the output variable

What is genetic programming 12

Conceptual preliminaries Fitness function f

In most cases (and most real-world applications of GP) tness function fmeasures the similarity of the output produced by the program to the desiredoutput given as a part of task statement

Then tness can be expressed as a monotonous function of the divergence ofprograms output from the desired one for instance as

f (p) =minussumi

||yi minusp(xi )|| (1)

where

p(xi ) is the output produced by program p for the input data xi

|| middot || is a metric in the output space O

i iterates over all tness cases

What is genetic programming 13

Conceptual preliminaries Character of candidate solutions

The candidate solutions in GP are being assembled from elementary entities calledinstructions

A part of formulation of a GP task is then also an instruction set I ie a set ofsymbols used by the search algorithm to compose the programs (candidatesolutions)

Design of I usually requires some background knowledge

In particular it should comprise all instructions necessary to nd solution to theproblem posed (closure)

What is genetic programming 14

Genetic programming

Main evolution loop (`vanilla GP)

1 procedure GeneticProgramming(f I ) f - tness function I - instruction set2 P larrplarrRandomProgram(I ) Initialize population3 repeat Main loop over generations4 for p isinP do Evaluation5 pf larr f (p) pf is a `eld in program p that stores its tness6 end for7 P prime larr 0 Next population8 repeat Breeding loop9 p1 larrTournamentSelection(P) First parent10 p2 larrTournamentSelection(P) Second parent11 (o1 o2)larrCrossover(p1 p2)12 o1 larrMutation(o1 I )13 o2 larrMutation(o2 I )14 P prime larrP prime cupo1 o215 until |P prime|= |P|16 P larrP prime

17 until StoppingCondition(P)18 return argmaxpisinP pf

19 end procedure

What is genetic programming 15

Crossover

Crossover exchange of randomly selected subexpressions (subtree swapping crossover)

1 function Crossover(p1 p2)2 repeat3 s1 larr Random node in p14 s2 larr Random node in p25 (pprime

1pprime2)larr Swap subtrees rooted in s1 and s2

6 until Depth(pprime1)lt dmax andDepth(pprime2)lt dmax dmax is the tree depth

limit7 return (pprime

1pprime2)

8 end function

What is genetic programming 16

Mutation

Mutation replace a randomly selected subexpression with a new randomly generatedsubexpression

1 function Mutation(pI )2 repeat3 slarr Random node in p

4 s prime larrRandomProgram(I )5 pprime larr Replace the subtree rooted in s with s prime

6 until Depth(pprime)lt dmax dmax is the tree depth limit7 return pprime

8 end function

What is genetic programming 17

Exemplary run Setup

Objective Find program whose output matches x2+x+1 over the range [minus11]Such tasks can be considered as a form of regressionAs solutions are built by manipulating code (instructions) this is referred to assymbolic regression

Fitness sum of absolute errors for x isin minus10minus09 0910In other words the set of tness cases is

xi -10 -09 0 09 10

yi 1 091 1 271 3

What is genetic programming 18

Exemplary run Setup

Instruction set

Nonterminal (function) set + - (protected division) and lowast all operating onoatsTerminal set x and constants chosen randomly between -5 and +5

Selection tness proportionate (roulette wheel) non elitist

Initial pop ramped half-and-half (depth 1 to 2 50 of terminals are constants)

(to be explained later)

Parameters

population size 450 subtree crossover25 reproduction25 subtree mutation no tree size limits

Termination when an individual with tness better than 01 found

What is genetic programming 19

Initial population (population 0)

What is genetic programming 20

Fitness assignment for population 0

Fitness values f(a)=77 f(b)=110 f(c)=1798 f(d)=287

What is genetic programming 21

Breeding

Assume

a gets reproduced

c gets mutated (at loci 2)

a and d get crossed-over

a and b get crossed over

What is genetic programming 22

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

[Unique] characteristic of EC

Black-box optimization (f primes dependency on the independent variables does nothave to be known or meet any criteria)

Fining an optimum cannot be guaranteed but in practice a well-performingsuboptimal solution is often satisfactory

Importance of crossover a recombination operator that makes the solutionsexchange certain elements (variable values features)

Without crossover parallel stochastic local search

Background 9

What is genetic programming

What is genetic programming 10

Genetic programming

In a nutshell

A variant of EC where the genotypes represent programs ie entities capable ofreading in input data and producing some output data in response to that input

Fitness function f measures the similarity of the output produced by the programto the desired output given as a part of task statement

Standard representation expression trees

Important implication Additional input required by the algorithm (compared to EC)

Set of instructions (programming language of consideration)

Data to run the programs on

What is genetic programming 11

Conceptual preliminaries of GP Space of candidate solutions P

Candidate solutions p isin P evolving under the selection pressure of the tnessfunction f are themselves functions of the form p I rarrO

I and O are respectively the spaces of input data and output data accepted andproduced by programs from P

Cardinality of |P| is typically large or innite

The set of program inputs I even if nite is usually so large that running eachcandidate solution on all possible inputs becomes intractable

GP algorithms typically evaluate solutions on a sample I prime sub I |I prime| |I | of possibleinputs and tness is only an approximate estimate of solution quality

The task is given as a set of tness cases ie pairs (xi yi ) isin I timesO where xiusually comprises one or more independent variables and yi is the output variable

What is genetic programming 12

Conceptual preliminaries Fitness function f

In most cases (and most real-world applications of GP) tness function fmeasures the similarity of the output produced by the program to the desiredoutput given as a part of task statement

Then tness can be expressed as a monotonous function of the divergence ofprograms output from the desired one for instance as

f (p) =minussumi

||yi minusp(xi )|| (1)

where

p(xi ) is the output produced by program p for the input data xi

|| middot || is a metric in the output space O

i iterates over all tness cases

What is genetic programming 13

Conceptual preliminaries Character of candidate solutions

The candidate solutions in GP are being assembled from elementary entities calledinstructions

A part of formulation of a GP task is then also an instruction set I ie a set ofsymbols used by the search algorithm to compose the programs (candidatesolutions)

Design of I usually requires some background knowledge

In particular it should comprise all instructions necessary to nd solution to theproblem posed (closure)

What is genetic programming 14

Genetic programming

Main evolution loop (`vanilla GP)

1 procedure GeneticProgramming(f I ) f - tness function I - instruction set2 P larrplarrRandomProgram(I ) Initialize population3 repeat Main loop over generations4 for p isinP do Evaluation5 pf larr f (p) pf is a `eld in program p that stores its tness6 end for7 P prime larr 0 Next population8 repeat Breeding loop9 p1 larrTournamentSelection(P) First parent10 p2 larrTournamentSelection(P) Second parent11 (o1 o2)larrCrossover(p1 p2)12 o1 larrMutation(o1 I )13 o2 larrMutation(o2 I )14 P prime larrP prime cupo1 o215 until |P prime|= |P|16 P larrP prime

17 until StoppingCondition(P)18 return argmaxpisinP pf

19 end procedure

What is genetic programming 15

Crossover

Crossover exchange of randomly selected subexpressions (subtree swapping crossover)

1 function Crossover(p1 p2)2 repeat3 s1 larr Random node in p14 s2 larr Random node in p25 (pprime

1pprime2)larr Swap subtrees rooted in s1 and s2

6 until Depth(pprime1)lt dmax andDepth(pprime2)lt dmax dmax is the tree depth

limit7 return (pprime

1pprime2)

8 end function

What is genetic programming 16

Mutation

Mutation replace a randomly selected subexpression with a new randomly generatedsubexpression

1 function Mutation(pI )2 repeat3 slarr Random node in p

4 s prime larrRandomProgram(I )5 pprime larr Replace the subtree rooted in s with s prime

6 until Depth(pprime)lt dmax dmax is the tree depth limit7 return pprime

8 end function

What is genetic programming 17

Exemplary run Setup

Objective Find program whose output matches x2+x+1 over the range [minus11]Such tasks can be considered as a form of regressionAs solutions are built by manipulating code (instructions) this is referred to assymbolic regression

Fitness sum of absolute errors for x isin minus10minus09 0910In other words the set of tness cases is

xi -10 -09 0 09 10

yi 1 091 1 271 3

What is genetic programming 18

Exemplary run Setup

Instruction set

Nonterminal (function) set + - (protected division) and lowast all operating onoatsTerminal set x and constants chosen randomly between -5 and +5

Selection tness proportionate (roulette wheel) non elitist

Initial pop ramped half-and-half (depth 1 to 2 50 of terminals are constants)

(to be explained later)

Parameters

population size 450 subtree crossover25 reproduction25 subtree mutation no tree size limits

Termination when an individual with tness better than 01 found

What is genetic programming 19

Initial population (population 0)

What is genetic programming 20

Fitness assignment for population 0

Fitness values f(a)=77 f(b)=110 f(c)=1798 f(d)=287

What is genetic programming 21

Breeding

Assume

a gets reproduced

c gets mutated (at loci 2)

a and d get crossed-over

a and b get crossed over

What is genetic programming 22

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

What is genetic programming

What is genetic programming 10

Genetic programming

In a nutshell

A variant of EC where the genotypes represent programs ie entities capable ofreading in input data and producing some output data in response to that input

Fitness function f measures the similarity of the output produced by the programto the desired output given as a part of task statement

Standard representation expression trees

Important implication Additional input required by the algorithm (compared to EC)

Set of instructions (programming language of consideration)

Data to run the programs on

What is genetic programming 11

Conceptual preliminaries of GP Space of candidate solutions P

Candidate solutions p isin P evolving under the selection pressure of the tnessfunction f are themselves functions of the form p I rarrO

I and O are respectively the spaces of input data and output data accepted andproduced by programs from P

Cardinality of |P| is typically large or innite

The set of program inputs I even if nite is usually so large that running eachcandidate solution on all possible inputs becomes intractable

GP algorithms typically evaluate solutions on a sample I prime sub I |I prime| |I | of possibleinputs and tness is only an approximate estimate of solution quality

The task is given as a set of tness cases ie pairs (xi yi ) isin I timesO where xiusually comprises one or more independent variables and yi is the output variable

What is genetic programming 12

Conceptual preliminaries Fitness function f

In most cases (and most real-world applications of GP) tness function fmeasures the similarity of the output produced by the program to the desiredoutput given as a part of task statement

Then tness can be expressed as a monotonous function of the divergence ofprograms output from the desired one for instance as

f (p) =minussumi

||yi minusp(xi )|| (1)

where

p(xi ) is the output produced by program p for the input data xi

|| middot || is a metric in the output space O

i iterates over all tness cases

What is genetic programming 13

Conceptual preliminaries Character of candidate solutions

The candidate solutions in GP are being assembled from elementary entities calledinstructions

A part of formulation of a GP task is then also an instruction set I ie a set ofsymbols used by the search algorithm to compose the programs (candidatesolutions)

Design of I usually requires some background knowledge

In particular it should comprise all instructions necessary to nd solution to theproblem posed (closure)

What is genetic programming 14

Genetic programming

Main evolution loop (`vanilla GP)

1 procedure GeneticProgramming(f I ) f - tness function I - instruction set2 P larrplarrRandomProgram(I ) Initialize population3 repeat Main loop over generations4 for p isinP do Evaluation5 pf larr f (p) pf is a `eld in program p that stores its tness6 end for7 P prime larr 0 Next population8 repeat Breeding loop9 p1 larrTournamentSelection(P) First parent10 p2 larrTournamentSelection(P) Second parent11 (o1 o2)larrCrossover(p1 p2)12 o1 larrMutation(o1 I )13 o2 larrMutation(o2 I )14 P prime larrP prime cupo1 o215 until |P prime|= |P|16 P larrP prime

17 until StoppingCondition(P)18 return argmaxpisinP pf

19 end procedure

What is genetic programming 15

Crossover

Crossover exchange of randomly selected subexpressions (subtree swapping crossover)

1 function Crossover(p1 p2)2 repeat3 s1 larr Random node in p14 s2 larr Random node in p25 (pprime

1pprime2)larr Swap subtrees rooted in s1 and s2

6 until Depth(pprime1)lt dmax andDepth(pprime2)lt dmax dmax is the tree depth

limit7 return (pprime

1pprime2)

8 end function

What is genetic programming 16

Mutation

Mutation replace a randomly selected subexpression with a new randomly generatedsubexpression

1 function Mutation(pI )2 repeat3 slarr Random node in p

4 s prime larrRandomProgram(I )5 pprime larr Replace the subtree rooted in s with s prime

6 until Depth(pprime)lt dmax dmax is the tree depth limit7 return pprime

8 end function

What is genetic programming 17

Exemplary run Setup

Objective Find program whose output matches x2+x+1 over the range [minus11]Such tasks can be considered as a form of regressionAs solutions are built by manipulating code (instructions) this is referred to assymbolic regression

Fitness sum of absolute errors for x isin minus10minus09 0910In other words the set of tness cases is

xi -10 -09 0 09 10

yi 1 091 1 271 3

What is genetic programming 18

Exemplary run Setup

Instruction set

Nonterminal (function) set + - (protected division) and lowast all operating onoatsTerminal set x and constants chosen randomly between -5 and +5

Selection tness proportionate (roulette wheel) non elitist

Initial pop ramped half-and-half (depth 1 to 2 50 of terminals are constants)

(to be explained later)

Parameters

population size 450 subtree crossover25 reproduction25 subtree mutation no tree size limits

Termination when an individual with tness better than 01 found

What is genetic programming 19

Initial population (population 0)

What is genetic programming 20

Fitness assignment for population 0

Fitness values f(a)=77 f(b)=110 f(c)=1798 f(d)=287

What is genetic programming 21

Breeding

Assume

a gets reproduced

c gets mutated (at loci 2)

a and d get crossed-over

a and b get crossed over

What is genetic programming 22

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Genetic programming

In a nutshell

A variant of EC where the genotypes represent programs ie entities capable ofreading in input data and producing some output data in response to that input

Fitness function f measures the similarity of the output produced by the programto the desired output given as a part of task statement

Standard representation expression trees

Important implication Additional input required by the algorithm (compared to EC)

Set of instructions (programming language of consideration)

Data to run the programs on

What is genetic programming 11

Conceptual preliminaries of GP Space of candidate solutions P

Candidate solutions p isin P evolving under the selection pressure of the tnessfunction f are themselves functions of the form p I rarrO

I and O are respectively the spaces of input data and output data accepted andproduced by programs from P

Cardinality of |P| is typically large or innite

The set of program inputs I even if nite is usually so large that running eachcandidate solution on all possible inputs becomes intractable

GP algorithms typically evaluate solutions on a sample I prime sub I |I prime| |I | of possibleinputs and tness is only an approximate estimate of solution quality

The task is given as a set of tness cases ie pairs (xi yi ) isin I timesO where xiusually comprises one or more independent variables and yi is the output variable

What is genetic programming 12

Conceptual preliminaries Fitness function f

In most cases (and most real-world applications of GP) tness function fmeasures the similarity of the output produced by the program to the desiredoutput given as a part of task statement

Then tness can be expressed as a monotonous function of the divergence ofprograms output from the desired one for instance as

f (p) =minussumi

||yi minusp(xi )|| (1)

where

p(xi ) is the output produced by program p for the input data xi

|| middot || is a metric in the output space O

i iterates over all tness cases

What is genetic programming 13

Conceptual preliminaries Character of candidate solutions

The candidate solutions in GP are being assembled from elementary entities calledinstructions

A part of formulation of a GP task is then also an instruction set I ie a set ofsymbols used by the search algorithm to compose the programs (candidatesolutions)

Design of I usually requires some background knowledge

In particular it should comprise all instructions necessary to nd solution to theproblem posed (closure)

What is genetic programming 14

Genetic programming

Main evolution loop (`vanilla GP)

1 procedure GeneticProgramming(f I ) f - tness function I - instruction set2 P larrplarrRandomProgram(I ) Initialize population3 repeat Main loop over generations4 for p isinP do Evaluation5 pf larr f (p) pf is a `eld in program p that stores its tness6 end for7 P prime larr 0 Next population8 repeat Breeding loop9 p1 larrTournamentSelection(P) First parent10 p2 larrTournamentSelection(P) Second parent11 (o1 o2)larrCrossover(p1 p2)12 o1 larrMutation(o1 I )13 o2 larrMutation(o2 I )14 P prime larrP prime cupo1 o215 until |P prime|= |P|16 P larrP prime

17 until StoppingCondition(P)18 return argmaxpisinP pf

19 end procedure

What is genetic programming 15

Crossover

Crossover exchange of randomly selected subexpressions (subtree swapping crossover)

1 function Crossover(p1 p2)2 repeat3 s1 larr Random node in p14 s2 larr Random node in p25 (pprime

1pprime2)larr Swap subtrees rooted in s1 and s2

6 until Depth(pprime1)lt dmax andDepth(pprime2)lt dmax dmax is the tree depth

limit7 return (pprime

1pprime2)

8 end function

What is genetic programming 16

Mutation

Mutation replace a randomly selected subexpression with a new randomly generatedsubexpression

1 function Mutation(pI )2 repeat3 slarr Random node in p

4 s prime larrRandomProgram(I )5 pprime larr Replace the subtree rooted in s with s prime

6 until Depth(pprime)lt dmax dmax is the tree depth limit7 return pprime

8 end function

What is genetic programming 17

Exemplary run Setup

Objective Find program whose output matches x2+x+1 over the range [minus11]Such tasks can be considered as a form of regressionAs solutions are built by manipulating code (instructions) this is referred to assymbolic regression

Fitness sum of absolute errors for x isin minus10minus09 0910In other words the set of tness cases is

xi -10 -09 0 09 10

yi 1 091 1 271 3

What is genetic programming 18

Exemplary run Setup

Instruction set

Nonterminal (function) set + - (protected division) and lowast all operating onoatsTerminal set x and constants chosen randomly between -5 and +5

Selection tness proportionate (roulette wheel) non elitist

Initial pop ramped half-and-half (depth 1 to 2 50 of terminals are constants)

(to be explained later)

Parameters

population size 450 subtree crossover25 reproduction25 subtree mutation no tree size limits

Termination when an individual with tness better than 01 found

What is genetic programming 19

Initial population (population 0)

What is genetic programming 20

Fitness assignment for population 0

Fitness values f(a)=77 f(b)=110 f(c)=1798 f(d)=287

What is genetic programming 21

Breeding

Assume

a gets reproduced

c gets mutated (at loci 2)

a and d get crossed-over

a and b get crossed over

What is genetic programming 22

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Conceptual preliminaries of GP Space of candidate solutions P

Candidate solutions p isin P evolving under the selection pressure of the tnessfunction f are themselves functions of the form p I rarrO

I and O are respectively the spaces of input data and output data accepted andproduced by programs from P

Cardinality of |P| is typically large or innite

The set of program inputs I even if nite is usually so large that running eachcandidate solution on all possible inputs becomes intractable

GP algorithms typically evaluate solutions on a sample I prime sub I |I prime| |I | of possibleinputs and tness is only an approximate estimate of solution quality

The task is given as a set of tness cases ie pairs (xi yi ) isin I timesO where xiusually comprises one or more independent variables and yi is the output variable

What is genetic programming 12

Conceptual preliminaries Fitness function f

In most cases (and most real-world applications of GP) tness function fmeasures the similarity of the output produced by the program to the desiredoutput given as a part of task statement

Then tness can be expressed as a monotonous function of the divergence ofprograms output from the desired one for instance as

f (p) =minussumi

||yi minusp(xi )|| (1)

where

p(xi ) is the output produced by program p for the input data xi

|| middot || is a metric in the output space O

i iterates over all tness cases

What is genetic programming 13

Conceptual preliminaries Character of candidate solutions

The candidate solutions in GP are being assembled from elementary entities calledinstructions

A part of formulation of a GP task is then also an instruction set I ie a set ofsymbols used by the search algorithm to compose the programs (candidatesolutions)

Design of I usually requires some background knowledge

In particular it should comprise all instructions necessary to nd solution to theproblem posed (closure)

What is genetic programming 14

Genetic programming

Main evolution loop (`vanilla GP)

1 procedure GeneticProgramming(f I ) f - tness function I - instruction set2 P larrplarrRandomProgram(I ) Initialize population3 repeat Main loop over generations4 for p isinP do Evaluation5 pf larr f (p) pf is a `eld in program p that stores its tness6 end for7 P prime larr 0 Next population8 repeat Breeding loop9 p1 larrTournamentSelection(P) First parent10 p2 larrTournamentSelection(P) Second parent11 (o1 o2)larrCrossover(p1 p2)12 o1 larrMutation(o1 I )13 o2 larrMutation(o2 I )14 P prime larrP prime cupo1 o215 until |P prime|= |P|16 P larrP prime

17 until StoppingCondition(P)18 return argmaxpisinP pf

19 end procedure

What is genetic programming 15

Crossover

Crossover exchange of randomly selected subexpressions (subtree swapping crossover)

1 function Crossover(p1 p2)2 repeat3 s1 larr Random node in p14 s2 larr Random node in p25 (pprime

1pprime2)larr Swap subtrees rooted in s1 and s2

6 until Depth(pprime1)lt dmax andDepth(pprime2)lt dmax dmax is the tree depth

limit7 return (pprime

1pprime2)

8 end function

What is genetic programming 16

Mutation

Mutation replace a randomly selected subexpression with a new randomly generatedsubexpression

1 function Mutation(pI )2 repeat3 slarr Random node in p

4 s prime larrRandomProgram(I )5 pprime larr Replace the subtree rooted in s with s prime

6 until Depth(pprime)lt dmax dmax is the tree depth limit7 return pprime

8 end function

What is genetic programming 17

Exemplary run Setup

Objective Find program whose output matches x2+x+1 over the range [minus11]Such tasks can be considered as a form of regressionAs solutions are built by manipulating code (instructions) this is referred to assymbolic regression

Fitness sum of absolute errors for x isin minus10minus09 0910In other words the set of tness cases is

xi -10 -09 0 09 10

yi 1 091 1 271 3

What is genetic programming 18

Exemplary run Setup

Instruction set

Nonterminal (function) set + - (protected division) and lowast all operating onoatsTerminal set x and constants chosen randomly between -5 and +5

Selection tness proportionate (roulette wheel) non elitist

Initial pop ramped half-and-half (depth 1 to 2 50 of terminals are constants)

(to be explained later)

Parameters

population size 450 subtree crossover25 reproduction25 subtree mutation no tree size limits

Termination when an individual with tness better than 01 found

What is genetic programming 19

Initial population (population 0)

What is genetic programming 20

Fitness assignment for population 0

Fitness values f(a)=77 f(b)=110 f(c)=1798 f(d)=287

What is genetic programming 21

Breeding

Assume

a gets reproduced

c gets mutated (at loci 2)

a and d get crossed-over

a and b get crossed over

What is genetic programming 22

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Conceptual preliminaries Fitness function f

In most cases (and most real-world applications of GP) tness function fmeasures the similarity of the output produced by the program to the desiredoutput given as a part of task statement

Then tness can be expressed as a monotonous function of the divergence ofprograms output from the desired one for instance as

f (p) =minussumi

||yi minusp(xi )|| (1)

where

p(xi ) is the output produced by program p for the input data xi

|| middot || is a metric in the output space O

i iterates over all tness cases

What is genetic programming 13

Conceptual preliminaries Character of candidate solutions

The candidate solutions in GP are being assembled from elementary entities calledinstructions

A part of formulation of a GP task is then also an instruction set I ie a set ofsymbols used by the search algorithm to compose the programs (candidatesolutions)

Design of I usually requires some background knowledge

In particular it should comprise all instructions necessary to nd solution to theproblem posed (closure)

What is genetic programming 14

Genetic programming

Main evolution loop (`vanilla GP)

1 procedure GeneticProgramming(f I ) f - tness function I - instruction set2 P larrplarrRandomProgram(I ) Initialize population3 repeat Main loop over generations4 for p isinP do Evaluation5 pf larr f (p) pf is a `eld in program p that stores its tness6 end for7 P prime larr 0 Next population8 repeat Breeding loop9 p1 larrTournamentSelection(P) First parent10 p2 larrTournamentSelection(P) Second parent11 (o1 o2)larrCrossover(p1 p2)12 o1 larrMutation(o1 I )13 o2 larrMutation(o2 I )14 P prime larrP prime cupo1 o215 until |P prime|= |P|16 P larrP prime

17 until StoppingCondition(P)18 return argmaxpisinP pf

19 end procedure

What is genetic programming 15

Crossover

Crossover exchange of randomly selected subexpressions (subtree swapping crossover)

1 function Crossover(p1 p2)2 repeat3 s1 larr Random node in p14 s2 larr Random node in p25 (pprime

1pprime2)larr Swap subtrees rooted in s1 and s2

6 until Depth(pprime1)lt dmax andDepth(pprime2)lt dmax dmax is the tree depth

limit7 return (pprime

1pprime2)

8 end function

What is genetic programming 16

Mutation

Mutation replace a randomly selected subexpression with a new randomly generatedsubexpression

1 function Mutation(pI )2 repeat3 slarr Random node in p

4 s prime larrRandomProgram(I )5 pprime larr Replace the subtree rooted in s with s prime

6 until Depth(pprime)lt dmax dmax is the tree depth limit7 return pprime

8 end function

What is genetic programming 17

Exemplary run Setup

Objective Find program whose output matches x2+x+1 over the range [minus11]Such tasks can be considered as a form of regressionAs solutions are built by manipulating code (instructions) this is referred to assymbolic regression

Fitness sum of absolute errors for x isin minus10minus09 0910In other words the set of tness cases is

xi -10 -09 0 09 10

yi 1 091 1 271 3

What is genetic programming 18

Exemplary run Setup

Instruction set

Nonterminal (function) set + - (protected division) and lowast all operating onoatsTerminal set x and constants chosen randomly between -5 and +5

Selection tness proportionate (roulette wheel) non elitist

Initial pop ramped half-and-half (depth 1 to 2 50 of terminals are constants)

(to be explained later)

Parameters

population size 450 subtree crossover25 reproduction25 subtree mutation no tree size limits

Termination when an individual with tness better than 01 found

What is genetic programming 19

Initial population (population 0)

What is genetic programming 20

Fitness assignment for population 0

Fitness values f(a)=77 f(b)=110 f(c)=1798 f(d)=287

What is genetic programming 21

Breeding

Assume

a gets reproduced

c gets mutated (at loci 2)

a and d get crossed-over

a and b get crossed over

What is genetic programming 22

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Conceptual preliminaries Character of candidate solutions

The candidate solutions in GP are being assembled from elementary entities calledinstructions

A part of formulation of a GP task is then also an instruction set I ie a set ofsymbols used by the search algorithm to compose the programs (candidatesolutions)

Design of I usually requires some background knowledge

In particular it should comprise all instructions necessary to nd solution to theproblem posed (closure)

What is genetic programming 14

Genetic programming

Main evolution loop (`vanilla GP)

1 procedure GeneticProgramming(f I ) f - tness function I - instruction set2 P larrplarrRandomProgram(I ) Initialize population3 repeat Main loop over generations4 for p isinP do Evaluation5 pf larr f (p) pf is a `eld in program p that stores its tness6 end for7 P prime larr 0 Next population8 repeat Breeding loop9 p1 larrTournamentSelection(P) First parent10 p2 larrTournamentSelection(P) Second parent11 (o1 o2)larrCrossover(p1 p2)12 o1 larrMutation(o1 I )13 o2 larrMutation(o2 I )14 P prime larrP prime cupo1 o215 until |P prime|= |P|16 P larrP prime

17 until StoppingCondition(P)18 return argmaxpisinP pf

19 end procedure

What is genetic programming 15

Crossover

Crossover exchange of randomly selected subexpressions (subtree swapping crossover)

1 function Crossover(p1 p2)2 repeat3 s1 larr Random node in p14 s2 larr Random node in p25 (pprime

1pprime2)larr Swap subtrees rooted in s1 and s2

6 until Depth(pprime1)lt dmax andDepth(pprime2)lt dmax dmax is the tree depth

limit7 return (pprime

1pprime2)

8 end function

What is genetic programming 16

Mutation

Mutation replace a randomly selected subexpression with a new randomly generatedsubexpression

1 function Mutation(pI )2 repeat3 slarr Random node in p

4 s prime larrRandomProgram(I )5 pprime larr Replace the subtree rooted in s with s prime

6 until Depth(pprime)lt dmax dmax is the tree depth limit7 return pprime

8 end function

What is genetic programming 17

Exemplary run Setup

Objective Find program whose output matches x2+x+1 over the range [minus11]Such tasks can be considered as a form of regressionAs solutions are built by manipulating code (instructions) this is referred to assymbolic regression

Fitness sum of absolute errors for x isin minus10minus09 0910In other words the set of tness cases is

xi -10 -09 0 09 10

yi 1 091 1 271 3

What is genetic programming 18

Exemplary run Setup

Instruction set

Nonterminal (function) set + - (protected division) and lowast all operating onoatsTerminal set x and constants chosen randomly between -5 and +5

Selection tness proportionate (roulette wheel) non elitist

Initial pop ramped half-and-half (depth 1 to 2 50 of terminals are constants)

(to be explained later)

Parameters

population size 450 subtree crossover25 reproduction25 subtree mutation no tree size limits

Termination when an individual with tness better than 01 found

What is genetic programming 19

Initial population (population 0)

What is genetic programming 20

Fitness assignment for population 0

Fitness values f(a)=77 f(b)=110 f(c)=1798 f(d)=287

What is genetic programming 21

Breeding

Assume

a gets reproduced

c gets mutated (at loci 2)

a and d get crossed-over

a and b get crossed over

What is genetic programming 22

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Genetic programming

Main evolution loop (`vanilla GP)

1 procedure GeneticProgramming(f I ) f - tness function I - instruction set2 P larrplarrRandomProgram(I ) Initialize population3 repeat Main loop over generations4 for p isinP do Evaluation5 pf larr f (p) pf is a `eld in program p that stores its tness6 end for7 P prime larr 0 Next population8 repeat Breeding loop9 p1 larrTournamentSelection(P) First parent10 p2 larrTournamentSelection(P) Second parent11 (o1 o2)larrCrossover(p1 p2)12 o1 larrMutation(o1 I )13 o2 larrMutation(o2 I )14 P prime larrP prime cupo1 o215 until |P prime|= |P|16 P larrP prime

17 until StoppingCondition(P)18 return argmaxpisinP pf

19 end procedure

What is genetic programming 15

Crossover

Crossover exchange of randomly selected subexpressions (subtree swapping crossover)

1 function Crossover(p1 p2)2 repeat3 s1 larr Random node in p14 s2 larr Random node in p25 (pprime

1pprime2)larr Swap subtrees rooted in s1 and s2

6 until Depth(pprime1)lt dmax andDepth(pprime2)lt dmax dmax is the tree depth

limit7 return (pprime

1pprime2)

8 end function

What is genetic programming 16

Mutation

Mutation replace a randomly selected subexpression with a new randomly generatedsubexpression

1 function Mutation(pI )2 repeat3 slarr Random node in p

4 s prime larrRandomProgram(I )5 pprime larr Replace the subtree rooted in s with s prime

6 until Depth(pprime)lt dmax dmax is the tree depth limit7 return pprime

8 end function

What is genetic programming 17

Exemplary run Setup

Objective Find program whose output matches x2+x+1 over the range [minus11]Such tasks can be considered as a form of regressionAs solutions are built by manipulating code (instructions) this is referred to assymbolic regression

Fitness sum of absolute errors for x isin minus10minus09 0910In other words the set of tness cases is

xi -10 -09 0 09 10

yi 1 091 1 271 3

What is genetic programming 18

Exemplary run Setup

Instruction set

Nonterminal (function) set + - (protected division) and lowast all operating onoatsTerminal set x and constants chosen randomly between -5 and +5

Selection tness proportionate (roulette wheel) non elitist

Initial pop ramped half-and-half (depth 1 to 2 50 of terminals are constants)

(to be explained later)

Parameters

population size 450 subtree crossover25 reproduction25 subtree mutation no tree size limits

Termination when an individual with tness better than 01 found

What is genetic programming 19

Initial population (population 0)

What is genetic programming 20

Fitness assignment for population 0

Fitness values f(a)=77 f(b)=110 f(c)=1798 f(d)=287

What is genetic programming 21

Breeding

Assume

a gets reproduced

c gets mutated (at loci 2)

a and d get crossed-over

a and b get crossed over

What is genetic programming 22

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Crossover

Crossover exchange of randomly selected subexpressions (subtree swapping crossover)

1 function Crossover(p1 p2)2 repeat3 s1 larr Random node in p14 s2 larr Random node in p25 (pprime

1pprime2)larr Swap subtrees rooted in s1 and s2

6 until Depth(pprime1)lt dmax andDepth(pprime2)lt dmax dmax is the tree depth

limit7 return (pprime

1pprime2)

8 end function

What is genetic programming 16

Mutation

Mutation replace a randomly selected subexpression with a new randomly generatedsubexpression

1 function Mutation(pI )2 repeat3 slarr Random node in p

4 s prime larrRandomProgram(I )5 pprime larr Replace the subtree rooted in s with s prime

6 until Depth(pprime)lt dmax dmax is the tree depth limit7 return pprime

8 end function

What is genetic programming 17

Exemplary run Setup

Objective Find program whose output matches x2+x+1 over the range [minus11]Such tasks can be considered as a form of regressionAs solutions are built by manipulating code (instructions) this is referred to assymbolic regression

Fitness sum of absolute errors for x isin minus10minus09 0910In other words the set of tness cases is

xi -10 -09 0 09 10

yi 1 091 1 271 3

What is genetic programming 18

Exemplary run Setup

Instruction set

Nonterminal (function) set + - (protected division) and lowast all operating onoatsTerminal set x and constants chosen randomly between -5 and +5

Selection tness proportionate (roulette wheel) non elitist

Initial pop ramped half-and-half (depth 1 to 2 50 of terminals are constants)

(to be explained later)

Parameters

population size 450 subtree crossover25 reproduction25 subtree mutation no tree size limits

Termination when an individual with tness better than 01 found

What is genetic programming 19

Initial population (population 0)

What is genetic programming 20

Fitness assignment for population 0

Fitness values f(a)=77 f(b)=110 f(c)=1798 f(d)=287

What is genetic programming 21

Breeding

Assume

a gets reproduced

c gets mutated (at loci 2)

a and d get crossed-over

a and b get crossed over

What is genetic programming 22

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Mutation

Mutation replace a randomly selected subexpression with a new randomly generatedsubexpression

1 function Mutation(pI )2 repeat3 slarr Random node in p

4 s prime larrRandomProgram(I )5 pprime larr Replace the subtree rooted in s with s prime

6 until Depth(pprime)lt dmax dmax is the tree depth limit7 return pprime

8 end function

What is genetic programming 17

Exemplary run Setup

Objective Find program whose output matches x2+x+1 over the range [minus11]Such tasks can be considered as a form of regressionAs solutions are built by manipulating code (instructions) this is referred to assymbolic regression

Fitness sum of absolute errors for x isin minus10minus09 0910In other words the set of tness cases is

xi -10 -09 0 09 10

yi 1 091 1 271 3

What is genetic programming 18

Exemplary run Setup

Instruction set

Nonterminal (function) set + - (protected division) and lowast all operating onoatsTerminal set x and constants chosen randomly between -5 and +5

Selection tness proportionate (roulette wheel) non elitist

Initial pop ramped half-and-half (depth 1 to 2 50 of terminals are constants)

(to be explained later)

Parameters

population size 450 subtree crossover25 reproduction25 subtree mutation no tree size limits

Termination when an individual with tness better than 01 found

What is genetic programming 19

Initial population (population 0)

What is genetic programming 20

Fitness assignment for population 0

Fitness values f(a)=77 f(b)=110 f(c)=1798 f(d)=287

What is genetic programming 21

Breeding

Assume

a gets reproduced

c gets mutated (at loci 2)

a and d get crossed-over

a and b get crossed over

What is genetic programming 22

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Exemplary run Setup

Objective Find program whose output matches x2+x+1 over the range [minus11]Such tasks can be considered as a form of regressionAs solutions are built by manipulating code (instructions) this is referred to assymbolic regression

Fitness sum of absolute errors for x isin minus10minus09 0910In other words the set of tness cases is

xi -10 -09 0 09 10

yi 1 091 1 271 3

What is genetic programming 18

Exemplary run Setup

Instruction set

Nonterminal (function) set + - (protected division) and lowast all operating onoatsTerminal set x and constants chosen randomly between -5 and +5

Selection tness proportionate (roulette wheel) non elitist

Initial pop ramped half-and-half (depth 1 to 2 50 of terminals are constants)

(to be explained later)

Parameters

population size 450 subtree crossover25 reproduction25 subtree mutation no tree size limits

Termination when an individual with tness better than 01 found

What is genetic programming 19

Initial population (population 0)

What is genetic programming 20

Fitness assignment for population 0

Fitness values f(a)=77 f(b)=110 f(c)=1798 f(d)=287

What is genetic programming 21

Breeding

Assume

a gets reproduced

c gets mutated (at loci 2)

a and d get crossed-over

a and b get crossed over

What is genetic programming 22

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Exemplary run Setup

Instruction set

Nonterminal (function) set + - (protected division) and lowast all operating onoatsTerminal set x and constants chosen randomly between -5 and +5

Selection tness proportionate (roulette wheel) non elitist

Initial pop ramped half-and-half (depth 1 to 2 50 of terminals are constants)

(to be explained later)

Parameters

population size 450 subtree crossover25 reproduction25 subtree mutation no tree size limits

Termination when an individual with tness better than 01 found

What is genetic programming 19

Initial population (population 0)

What is genetic programming 20

Fitness assignment for population 0

Fitness values f(a)=77 f(b)=110 f(c)=1798 f(d)=287

What is genetic programming 21

Breeding

Assume

a gets reproduced

c gets mutated (at loci 2)

a and d get crossed-over

a and b get crossed over

What is genetic programming 22

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Initial population (population 0)

What is genetic programming 20

Fitness assignment for population 0

Fitness values f(a)=77 f(b)=110 f(c)=1798 f(d)=287

What is genetic programming 21

Breeding

Assume

a gets reproduced

c gets mutated (at loci 2)

a and d get crossed-over

a and b get crossed over

What is genetic programming 22

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Fitness assignment for population 0

Fitness values f(a)=77 f(b)=110 f(c)=1798 f(d)=287

What is genetic programming 21

Breeding

Assume

a gets reproduced

c gets mutated (at loci 2)

a and d get crossed-over

a and b get crossed over

What is genetic programming 22

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Breeding

Assume

a gets reproduced

c gets mutated (at loci 2)

a and d get crossed-over

a and b get crossed over

What is genetic programming 22

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Population 1

Population 0

Population 1

Individual d in population 1 has tness 0

What is genetic programming 23

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Summary of our rst glimpse at GP

Summary of our rst glimpse at GP 24

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Specic features of GP

The solutions evolving under the selection pressure of the tness function arethemselves functions (programs)

GP operates on symbolic structures of varying lengths

There are no variables for the algorithm to operate on (at least in the commonsense)

The program can be tested only on a limited number of tness cases (tests)

=rArr In contrast to most EC methods that are typically placed in optimizationframework GP is by nature an inductive learning approach that ts into the domain ofmachine learning [33]

Summary of our rst glimpse at GP 25

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

In a broader context

As opposed to typical ML approaches GP is very generic

Arbitrary programming language arbitrary input and output representation

The syntax and semantic of the programming language of consideration serve asmeans to provide the algorithm with prior knowledge

(common sense knowledge background knowledge domain knowledge)

GP is not the only approach to program induction (but probably the best one )

See eg inductive logic programming ILP

GP embodies the ultimate goal of AI to build a system capable ofself-programming (adaptation learning)

Summary of our rst glimpse at GP 26

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

GPs founding father

httpwwwgenetic-programmingcomjohnkozahtml

Summary of our rst glimpse at GP 27

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Life demonstration of GP using ECJ

Life demonstration of GP using ECJ 28

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

GP on ECJ

ECJ Evolutionary Computation in Javahttpcsgmuedu~eclabprojectsecj

by Sean Luke Liviu Panait Gabriel Balan Sean Paus Zbigniew Skolicki ElenaPopovici Keith Sullivan et al

Probably the most popular freely available framework for EC with a strongsupport for GP

Licensed under Academic Free License version 30

As of December 2013 version 21

Many other libraries integrate with ECJ

Life demonstration of GP using ECJ 29

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Selected ECJ features

GUI with charting

Platform-independent checkpointing and logging

Hierarchical parameter les

Multithreading

Mersenne Twister Random Number Generators (compare tohttpwwwalifecouknonrandom)

Abstractions for implementing a variety of EC forms

Prepared to work in a distributed environment (including so-called island model)

Life demonstration of GP using ECJ 30

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

GP-related ECJ features

GP Tree Representations

Set-based Strongly-Typed Genetic Programming

Ephemeral Random Constants

Automatically-Dened Functions and Automatically Dened Macros

Multiple tree forests

Six tree-creation algorithms

Extensive set of GP breeding operators

Grammatical Encoding

Eight pre-done GP application problem domains (ant regression multiplexerlawnmower parity two-box edge serengeti)

Life demonstration of GP using ECJ 31

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Exemplary run of ECJ

Standard output

java ecEvolve -file ecappregressionquinticercparamsThreads breed1 eval1Seed 1427743400Job 0Setting upProcessing GP TypesProcessing GP Node ConstraintsProcessing GP Function SetsProcessing GP Tree Constraints-01306332228659439200164875774146594280653340439694114301402200189629743-0037506348565697010001402771209365470606602806044824949013869498395598084Initializing Generation 0Subpop 0 best fitness of generation Fitness Standardized=11303205 Adjusted=046941292 Hits=10Generation 1Subpop 0 best fitness of generation Fitness Standardized=06804932 Adjusted=059506345 Hits=7

Life demonstration of GP using ECJ 32

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Exemplary run The result

The log le produced by the run

Generation 0Best IndividualSubpopulation 0Evaluated trueFitness Standardized=11303205 Adjusted=046941292 Hits=10Tree 0( (sin ( x x)) (cos (+ x x)))Generation 1Best IndividualSubpopulation 0Evaluated trueFitness Standardized=06804932 Adjusted=059506345 Hits=7Tree 0( (rlog (+ (- x x) (cos x))) (rlog (- (cos (cos ( x x))) (- x x))))

Life demonstration of GP using ECJ 33

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Exemplary run

The log le produced by the run

Best Individual of RunSubpopulation 0Evaluated trueFitness Standardized=008413165 Adjusted=092239726 Hits=17Tree 0( ( ( (- ( ( ( ( x (sin x)) (rlog

x)) (+ (+ (sin x) x) (- x x))) (exp ( x( ( (- ( ( ( ( x x) (rlog x)) (+ (+

(sin x) x) (- x x))) (exp ( x (sin x))))(sin x)) (rlog x)) (exp (rlog x)))))) (sin

x)) (rlog x)) x) (cos (cos ( ( (- ( ((exp (rlog x)) (+ x ( ( (exp (rlog x))(rlog x)) x))) (exp ( ( ( (- (exp (rlogx)) x) (rlog x)) x) (sin ( x x))))) (sinx)) ( x ( ( (- ( ( ( ( x x) (rlogx)) (+ (+ x (+ (+ (sin x) x) (- x x))) (-x x))) (exp ( x (sin x)))) (sin x)) (rlogx)) (exp (rlog x))))) x))))

Life demonstration of GP using ECJ 34

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

GP Benchmarks

Problem Denition (formula)

Sextic x6minus2x4+x2

Septic x7minus2x6+x5minusx4+x3minus2x2+x

Nonic x9+x8+x7+x6+x5+x4+x3+x2+x

R1 (x+1)3(x2minusx+1)R2 (x5minus3x3+1)(x2+1)R3 (x6+x5)(x4+x3+x2+x+1)

Life demonstration of GP using ECJ 35

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Even more GP benchmarks

Symbolic Regression Drug Bioavailability [46]

Tower [55] Protein Structure Classication [61]

Boolean Functions Time Series Forecasting [56]

N-Multiplexer [18] N-Majority [18] N-Parity [18] Path-nding and Planning

Generalised Boolean Circuits [12 62] Physical Travelling Salesman [31]

Digital Adder [58] Articial Ant [18]

Order [9] Lawnmower [19]

Digital Multiplier [58] Tartarus Problem [6]

Majority [9] Maximum Overhang [40]

Classication Circuit Design [32]

mRNA Motif Classication [27] Control Systems

DNA Motif Discovery [28] Chaotic Dynamic Systems Control [29]

Intrusion Detection [11] Pole Balancing [35]

Protein Classication [22] Truck Control [17]

Intertwined Spirals [18]

Predictive Modelling

Mackey-Glass Chaotic Time Series [24]

Financial Trading [5 4 8]

Sunspot Prediction [18]

GeneChip Probe Performance [25]

Prime Number Prediction [57]

Life demonstration of GP using ECJ 36

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

and more

Game-Playing

TORCS Car Racing [53]

Ms PacMan [10]

Othello [30]

Chessboard Evaluation [47]

Backgammon [47]

Mario [52]

NP-Complete Puzzles [15]

Robocode [47]

Rush Hour [47]

Checkers [47]

Freecell [47]

Dynamic Optimisation

Dynamic Symbolic Regression [38 39 54]

Dynamic Scheduling [13]

Traditional Programming

Sorting [16 1]

Life demonstration of GP using ECJ 37

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

A more detailed view on GP(vanilla GP is not all the story)

A more detailed view on GP (vanilla GP is not all the story) 38

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Where to get [random] candidate solutions from

Every stochastic search method relies on some sampling algorithm(s)

The distribution of randomly generated solutions is important as it impliescertain bias of the algorithm

Problems

We dont know the `ideal distribution of GP programsEven if we knew it it may be dicult to design an algorithm that obeys it

The most widely used contemporary initialization methods take care only of thesyntax of generated programs

Mainly height constraint

A more detailed view on GP (vanilla GP is not all the story) 39

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Initialization Full method

Specify the maximum tree height hmax

The full method for initializing trees

Choose nonterminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 40

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Initialization Grow method

Specify the maximum tree height hmax

The grow method for initializing trees

Choose nonterminal or terminal nodes at random until hmax is reachedThen choose only from terminals

A more detailed view on GP (vanilla GP is not all the story) 41

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Initialization Ramped half and half method

Ramped half and half

Initialize half of population using Full methodInitialize half of population using Grow method

A more detailed view on GP (vanilla GP is not all the story) 42

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Homologous crossover for GP

Earliest example one-point crossover [26] identify a common region in theparents and swap the corresponding trees

The common region is the `intersection of parent trees

A more detailed view on GP (vanilla GP is not all the story) 43

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Uniform crossover for GP

Works similarly to uniform crossover in GAs

The ospring is build by iterating over nodes in the common region and ipping acoin to decide from which parent should an instruction be copied [41]

A more detailed view on GP (vanilla GP is not all the story) 44

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

How to employ multiple operators for `breeding

How should the particular operators coexist in an evolutionary process In other words

How should they be superimposed

What should be the `piping of particular breeding pipelines

A topic surprisingly underexplored in GP (and in EC probably too)

An example Which is better

popsubpop0speciespipe = ecgpkozaMutationPipelinepopsubpop0speciespipenum-sources = 1popsubpop0speciespipesource0 = ecgpkozaCrossoverPipeline

Or

popsubpop0speciespipenum-sources = 2popsubpop0speciespipesource0 = ecgpkozaCrossoverPipelinepopsubpop0speciespipesource0prob = 09popsubpop0speciespipesource1 = ecgpkozaMutationPipelinepopsubpop0speciespipesource1prob = 01

A more detailed view on GP (vanilla GP is not all the story) 45

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

The Challenges for GP

The Challenges for GP 46

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Bloat

The evolving expressions tend to grow indenitely in size

For tree-based representations this growth is typically exponential[-ish]

Evaluation becomes slow algorithm stalls memory overrun likely

One of the most intensely studied topics in GP 240+ papers as of March 2012

The Challenges for GP 47

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Bloat example

Average number of nodes per generation in a typical run of GP solving the Sexticproblem x6minus2x4+x2

(GP dotted line)

The Challenges for GP 48

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Countermeasures for bloat

Constraining tree height

Surprisingly can speed up bloat

Favoring small programs

Lexicographic parsimony pressure given two equally t individuals prefer (select)the one represented by a smaller tree

Bloat-aware operators size-fair crossover

The Challenges for GP 49

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Highly non-uniform distribution of program `behaviors

Convergence of binary Boolean random linear functions (composed of AND NANDOR NOR 8 bits)

From [23] Langdon W B Cantuacute-Paz E (ed) Random Search is Parsimonious LateBreaking Papers at the Genetic and Evolutionary Computation Conference(GECCO-2002) AAAI 2002 308-315

The Challenges for GP 50

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

High cost of evaluation

Running a program on multiple inputscan be expensive

Particularly for some types of dataeg images

Solutions

Caching of outcomes of subprograms

Parallel execution of programs onparticular tness cases

Bloat prevention methods

The Challenges for GP 51

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Variants of GP

Variants of GP 52

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Strongly typed GP (STGP)

A way to incorporate prior knowledge and impose a structure on programs [34]

Implementation

Provide a set of typesFor each instruction dene the types of its arguments and outcomesMake the operators type-aware

Mutation substitute a random tree of a proper typeCrossover swap trees of compatible1 types

1Compatible belonging to the same `set typeVariants of GP 53

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Strongly typed GP in ECJ

For the problem of simple classiers represented as decision trees

Classier syntaxClassier = Class_idClassier = if_then_else(Condition ClassierClassier)Condition = Input_Variable = Constant_Value

Implementation in ECJ parameter lesgptypeasize = 3gptypea0name = classgptypea1name = vargptypea2name = constgptypessize = 0gptcsize = 1gptc0 = ecgpGPTreeConstraintsgptc0name = tc0gptc0fset = f0gptc0returns = class

gpncsize = 4gpnc0 = ecgpGPNodeConstraintsgpnc0name = ncSimpleClassiergpnc0returns = classgpnc0size = 0gpnc1 = ecgpGPNodeConstraintsgpnc1name = ncCompoundClassiergpnc1returns = classgpnc1size = 4gpnc1child0 = vargpnc1child1 = constgpnc1child2 = classgpnc1child3 = classgpnc2 = ecgpGPNodeConstraintsgpnc2name = ncVariablegpnc2returns = vargpnc2size = 0gpnc3 = ecgpGPNodeConstraintsgpnc3name = ncConstantgpnc3returns = constgpnc3size = 0

Variants of GP 54

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Linear Genetic Programming

Motivation

Tree-like structures are not natural for contemporary hardware architectures

Program = a sequence of instructions

Data passed via registers

Pros

Directly portable to machine code fast executionNatural correspondence to standard (GA-like) crossover operator

Applications direct evolution of machine code [36]

Initial register contents

Final register contents

x1

x2 O1 O2

x3

O3 O4 g2

g3

g1r1

r2

r3

r1

r2

r3

Variants of GP 55

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Linear GP

Variants of GP 56

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Stack-based GP

The best-known representative Push and PushGPhampshireedulspectorpushhtml [51]

Pros

Very simple syntax program = instruction | literal | ( program )No need to specify the number of registersThe top element of a stack has the natural interpretation of program outcomeNatural possibility of implementing autoconstructive programs [50]Includes certain features that make it Turing-complete (eg YANK instruction)

Variants of GP 57

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Push Example

Program

( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

Initial stack states

BOOLEAN STACK ()

CODE STACK ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR )

FLOAT STACK ()

INTEGER STACK ()

Stack states after program execution

BOOLEAN STACK ( TRUE )

CODE STACK ( ( 2 3 INTEGER 41 52 FLOAT+ TRUE FALSE BOOLEANOR ) )

FLOAT STACK ( 93 )

INTEGER STACK ( 6 )

httphampshireedulspectorpush3-descriptionhtml

Variants of GP 58

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Other variants of GP

Grammatical Evolution The grammar of the programming language ofconsideration is given as input to the algorithm Individuals encode the choice ofproductions in the derivation tree (which of available alternative productionshould be chosen modulo the number of productions available at given step ofderivation)

Graph-based GP

Motivation standard GP cannot reuse subprograms (within a single program)Example Cartesian Genetic Programming

Variants of GP 59

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Other variants of GP

Multiobjective GP The extra objectives can

Come with the problemResult from GPs specics eg use program size as the second (minimized)objectiveBe associated with dierent tests (eg feature tests [43])

Developmental GP (eg using Push)

Probabilistic GP (a variant of EDA Estimation of Distribution Algorithms)

The algorithm maintains a probability distribution P instead of a populationIndividuals are generated from P `on demandThe results of individuals evaluation are used to update P

Variants of GP 60

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Simple EDA-like GP PIPE

Probabilistic Incremental Program Evolution [44]

Variants of GP 61

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Applications of GP

Applications of GP 62

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Review

GP produced a number of solutions that are human-competitive ie a GPalgorithm automatically solved a problem for which a patent exists2

A recent award-winning work has demonstrated the ability of a GP system toautomatically nd and correct bugs in commercially-released software whenprovided with test data3

GP is one of leading methodologies that can be used to `automate sciencehelping the researchers to nd the hidden complex patterns in the observedphenomena4

2Koza J R Keane M A Streeter M J Mydlowec W Yu J Lanza G 2003 Genetic Pro-gramming IV Routine Human-Competitive Machine Intelligence Kluwer Academic Publishers

3Arcuri A Yao X A novel co-evolutionary approach to automatic software bug xing In WangJ (Ed) 2008 IEEE World Congress on Computational Intelligence IEEE Computational IntelligenceSociety IEEE Press Hong Kong

4Schmidt M Lipson H 3 Apr 2009 Distilling free-form natural laws from experimental dataScience 324 (5923) 8185

Applications of GP 63

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Humies

() Entries were solicited for cash awards for human-competitive results that wereproduced by any form of genetic and evolutionary computation and that were published

Applications of GP 64

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Humies

The conditions to qualify(A) The result was patented as an invention in the past is an improvement over apatented invention or would qualify today as a patentable new invention(B) The result is equal to or better than a result that was accepted as a new scienticresult at the time when it was published in a peer-reviewed scientic journal(C) The result is equal to or better than a result that was placed into a database orarchive of results maintained by an internationally recognized panel of scienticexperts(D) The result is publishable in its own right as a new scientic result independentof the fact that the result was mechanically created(E) The result is equal to or better than the most recent human-created solution to along-standing problem for which there has been a succession of increasingly betterhuman-created solutions(F) The result is equal to or better than a result that was considered an achievementin its eld at the time it was rst discovered(G) The result solves a problem of indisputable diculty in its eld(H) The result holds its own or wins a regulated competition involving humancontestants (in the form of either live human players or human-written computerprograms)

Applications of GP 65

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Selected Gold Humies

2004 Jason D Lohn Gregory S Hornby Derek S Linden NASA Ames ResearchCenterAn Evolved Antenna for Deployment on NASAs Space Technology 5 Mission

httpidesignucscedupapershornby_ec11pdf

Applications of GP 66

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Selected Gold Humies using GP

2009 Stephanie Forrest Claire Le Goues ThanhVu Nguyen Westley WeimerAutomatically nding patches using genetic programming A GeneticProgramming Approach to Automated Software Repair

Applications of GP 67

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Selected Gold Humies using GP

2008 Lee Spector David M Clark Ian Lindsay Bradford Barr Jon KleinGenetic Programming for Finite Algebras

2010 Natalio Krasnogor Paweordf Widera Jonathan GaribaldiEvolutionary design of the energy function for protein structure prediction GPchallenge evolving the energy function for protein structure prediction Automateddesign of energy functions for protein structure prediction by means of geneticprogramming and improved structure similarity assessment

2011 Achiya Elyasaf Ami Hauptmann Moshe SipperGA-FreeCell Evolving Solvers for the Game of FreeCell

Applications of GP 68

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Other applications

classication problems in machine learning [20] object recognition [21 37] or

learning game strategies [14]

[2 60] has demonstrated the ability of a GP system to automatically nd andcorrect bugs in commercially-released software when provided with test data

In the context of this paper it deserves particular attention that GP is one ofleading methodologies that can be used to `automate science helping theresearchers to nd the hidden complex patterns in the observed phenomena

In this spirit in their seminal paper [45] have shown how GP can be used toinduce scientic laws from experimental data Many other studies havedemonstrated the usefulness of GP for modeling dierent phenomena includingthose of natural origins [48 3 7 59 49]

See [42] for an extensive review of GP applications

Applications of GP 69

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Additional resources

Additional resources 70

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Additional resources

Evolutionary Computation in Java csgmuedu~eclabprojectsecj

Generic software framework for EA well-prepared to work with GP

The online GP bilbiography wwwcsbhamacuk~wblbiblio

The genetic programming `home page (a little bit messy but still valuable)httpwwwgenetic-programmingcom

Additional resources 71

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

Bibliography

Bibliography 72

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

A Agapitos and S M LucasEvolving Modular Recursive Sorting AlgorithmsIn Proc EuroGP 2007

A Arcuri and X YaoA novel co-evolutionary approach to automatic software bug xingIn J Wang editor 2008 IEEE World Congress on Computational Intelligencepages 162168 Hong Kong 1-6 June 2008 IEEE Computational IntelligenceSociety IEEE Press

M Arganis R Val J Prats K Rodriguez R Dominguez and J DolzGenetic programming and standardization in water temperature modellingAdvances in Civil Engineering 2009 2009

A Brabazon M ONeill and I DempseyAn Introduction to Evolutionary Computation in FinanceIEEE Computational Intelligence Magazine 3(4)4255 2008

R Bradley A Brabazon and M ONeillDynamic High Frequency Trading A Neuro-Evolutionary ApproachIn Proc EvoWorkshops 2009

G Cuccu and F GomezWhen novelty is not enoughIn Proc EvoApplications 2011

Bibliography 73

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

M Daga and M C DeoAlternative data-driven methods to estimate wind from waves by inversemodelingNatural Hazards 49(2)293310 May 2009

I Dempsey M ONeill and A BrabazonAdaptive Trading With Grammatical EvolutionIn Proc CEC 2006

G Durrett F Neumann and U-M OReillyComputational Complexity Analysis of Simple Genetic Programming On TwoProblems Modeling Isolated Program SemanticsIn Proc FOGA 2011

E Galvaacuten-Loacutepez J Swaord M ONeill and A BrabazonEvolving a Ms PacMan Controller Using Grammatical EvolutionIn Applications of Evolutionary Computation Springer 2010

J V Hansen P B Lowry R D Meservy and D M McDonaldGenetic Programming for Prevention of Cyberterrorism through Dynamic andEvolving Intrusion DetectionDecision Support Systems 4313621374 2007

Bibliography 74

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

S Harding J F Miller and W BanzhafDevelopments in Cartesian Genetic Programming self-modifying CGPGPEM 11397439 2010

D Jakobovicent and L BudinDynamic Scheduling with Genetic ProgrammingIn Proc EuroGP 2006

W Japlusmnkowski K Krawiec and B WielochEvolving strategy for a probabilistic game of imperfect information using geneticprogrammingGenetic Programming and Evolvable Machines 9(4)281294 2008

G Kendall A Parkes and K SpoererA Survey of NP-Complete PuzzlesInternational Computer Games Association Journal 31(1)1334 2008

K E Kinnear JrEvolving a Sort Lessons in Genetic ProgrammingIn Proc of the International Conference on Neural Networks 1993

J KozaA Genetic Approach to the Truck Backer Upper Problem and the Inter-twinedSpiral ProblemIn Proc International Joint Conference on Neural Networks 1992

Bibliography 75

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

J R KozaGenetic Programming On the Programming of Computers by Means of NaturalSelectionMIT Press Cambridge MA USA 1992

J R KozaGenetic Programming II Automatic Discovery of Reusable ProgramsMIT Press Cambridge Massachusetts May 1994

K KrawiecGenetic programming-based construction of features for machine learning andknowledge discovery tasksGenetic Programming and Evolvable Machines 4329343 2002

K Krawiec and B BhanuVisual learning by evolutionary and coevolutionary feature synthesisIEEE Trans on Evolutionary Computation 11635650 October 2007DOI 101109TEVC2006887351

W Langdon and W BanzhafRepeated Patterns in Genetic ProgrammingNatural Computing 7589613 2008

Bibliography 76

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

W B LangdonRandom search is parsimoniousIn E Cantuacute-Paz editor Late Breaking Papers at the Genetic and EvolutionaryComputation Conference (GECCO-2002) pages 308315 New York NY 9-13July 2002 AAAI

W B Langdon and W BanzhafRepeated Sequences in Linear Genetic Programming GenomesComplex Systems 15(4)285306 2005

W B Langdon and A P HarrisonEvolving Regular Expressions for GeneChip Probe Performance PredictionIn Proc PPSN pages 10611070 2008

W B Langdon and R PoliFoundations of Genetic ProgrammingSpringer-Verlag 2002

W B Langdon J Rowsell and A P HarrisonCreating Regular Expressions as mRNA Motifs with GP to Predict Human ExonSplittingIn Proc GECCO 2009

Bibliography 77

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

W B Langdon O Sanchez Graillet and A P HarrisonAutomated DNA Motif DiscoveryarXivorg 2010

M Lones A Tyrrell S Stepney and L CavesControlling Complex Dynamics with Articial Biochemical NetworksIn Proc EuroGP pages 159170 2010

S LucasOthello Competitionhttpprotectkern-1667emrelaxalgovalessexacuk

8080othellohtmlOthellohtml 2012[Online accessed 27-Jan-2012]

S LucasThe Physical Travelling Salesperson Problemhttp

protectkern-1667emrelaxalgovalessexacukptspptsphtml2012[Online accessed 27Jan-2012]

T McConaghyFFX Fast Scalable Deterministic Symbolic Regression TechnologyIn Proc GPTP 2011

Bibliography 78

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

T M MitchellMachine LearningMcGraw-Hill 1997

D J MontanaStrongly typed genetic programmingBBN Technical Report 7866 Bolt Beranek and Newman Inc 10 MoultonStreet Cambridge MA 02138 USA 7 May 1993

M Nicolau M Schoenauer and W BanzhafEvolving Genes to Balance a PoleIn Proc EuroGP 2010

P Nordin and W BanzhafGenetic programming controlling a miniature robotIn E V Siegel and J R Koza editors Working Notes for the AAAI Symposiumon Genetic Programming pages 6167 MIT Cambridge MA USA 1012 Nov1995 AAAI

G Olague and L TrujilloEvolutionary-computer-assisted design of image operators that detect interestpoints using genetic programmingImage and Vision Computing In Press Accepted Manuscript 2011

Bibliography 79

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

M ONeill A Brabazon and E HembergSubtree Deactivation Control with Grammatical Genetic Programming inDynamic EnvironmentsIn Proc CEC 2008

M ONeill and C RyanGrammatical Evolution by Grammatical Evolution The Evolution of Grammarand Genetic CodeIn Proc EuroGP pages 138149 Springer-Verlag 57 Apr 2004

M Paterson Y Peres M Thorup P Winkler and U ZwickMaximum OverhangIn Proc 19th Annual ACM-SIAM Symposium on Discrete Algorithms 2008

R Poli and W B LangdonOn the search properties of dierent crossover operators in genetic programmingIn J R Koza W Banzhaf K Chellapilla K Deb M Dorigo D B Fogel M HGarzon D E Goldberg H Iba and R Riolo editors Genetic Programming1998 Proceedings of the Third Annual Conference pages 293301 University ofWisconsin Madison Wisconsin USA 22-25 July 1998 Morgan Kaufmann

Bibliography 80

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

R Poli W B Langdon and N F McPheeA eld guide to genetic programmingPublished via httplulucom and freely available athttpwwwgp-field-guideorguk 2008(With contributions by J R Koza)

B J Ross and H ZhuProcedural texture evolution using multiobjective optimizationNew Generation Computing 22(3)271293 2004

R P Salustowicz and J SchmidhuberProbabilistic incremental program evolutionEvolutionary Computation 5(2)123141 1997

M Schmidt and H LipsonDistilling free-form natural laws from experimental dataScience 324(5923)8185 3 Apr 2009

S Silva and L VanneschiState-of-the-Art Genetic Programming for Predicting Human Oral Bioavailabilityof DrugsIn Proc 4th International Workshop on Practical Applications of ComputationalBiology and Bioinformatics 2010

Bibliography 81

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

M SipperLet the Games EvolveIn Proc GPTP 2011

C Sivapragasam R Maheswaran and V VenkateshGenetic programming approach for ood routing in natural channelsHydrological Processes 22(5)623628 2007

C Sivapragasam N Muttil S Muthukumar and V M ArunPrediction of algal blooms using genetic programmingMarine Pollution Bulletin 60(10)18491855 2010

L SpectorTowards practical autoconstructive evolution Self-evolution of problem-solvinggenetic programming systemsIn R Riolo T McConaghy and E Vladislavleva editors Genetic ProgrammingTheory and Practice VIII volume 8 of Genetic and Evolutionary Computationchapter 2 pages 1733 Springer Ann Arbor USA 20-22 May 2010

L Spector C Perry and J KleinPush 20 programming language descriptionTechnical report School of Cognitive Science Hampshire College Apr 2004

Bibliography 82

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

J Togelius S Karakovskiy J Koutnik and J SchmidhuberSuper Mario EvolutionIn Proc IEEE Computational Intelligence and Games 2009

TORCS The Open Car Racing Simulatorhttptorcssourceforgenet 2012

L Vanneschi and G CuccuVariable Size Population for Dynamic Optimization with Genetic ProgrammingIn Proc GECCO 2009

E Vladislavleva G Smits and D Den HertogOrder of Nonlinearity as a Complexity Measure for Models Generated by SymbolicRegression via Pareto Genetic ProgrammingIEEE Trans EC 13(2)333349 2009

N Wagner Z Michalewicz M Khouja and R McGregorTime Series Forecasting for Dynamic Environments The DyFor Genetic ProgramModelIEEE Trans EC 2007

J Walker and J MillerPredicting Prime Numbers Using Cartesian Genetic ProgrammingIn Proc EuroGP 2007

Bibliography 83

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography

J A Walker K Voumllk S L Smith and J F MillerParallel Evolution using Multi-chromosome Cartesian Genetic ProgrammingGPEM 10417445 2009

W-C Wang K-W Chau C-T Cheng and L QiuA comparison of performance of several articial intelligence methods forforecasting monthly discharge time seriesJournal of Hydrology 374(3-4)294306 2009

W Weimer S Forrest C Le Goues and T NguyenAutomatic program repair with evolutionary computationCommunications of the ACM 53(5)109116 June 2010

P Widera J Garibaldi and N KrasnogorGP challenge Evolving energy function for protein structure predictionGPEM 116188 2010

T YuHierarchical Processing for Evolving Recursive and Modular Programs UsingHigher-Order Functions and Lambda AbstractionGPEM 2345380 2001

Bibliography 84

  • Introduction
  • Background
  • What is genetic programming
  • Summary of our first glimpse at GP
  • Life demonstration of GP using ECJ
  • A more detailed view on GP (vanilla GP is not all the story)
  • The Challenges for GP
  • Variants of GP
  • Applications of GP
  • Additional resources
  • Bibliography