Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Gene Expression Programming with Pre-Order Traversals Stefan Kahrs University of Kent at Canterbury RASC 2006 Kahrs - GEP pre-order Overview • intro • gene expression programming and grammar evolution • breeding by crossover, meaning • change to pre-order traversal • a problem with that • ... and its solution RASC 2006 Kahrs - GEP pre-order Genetic Programming breed fitness criterion mutate select population of programs RASC 2006 Kahrs - GEP pre-order GEP and GE • separate genotype and phenotype • genetic information (determining an individual) is given as the list of nodes of the syntax tree in level-order (GEP) or pre-order (GE) • from this a syntax tree is recovered • the list can have additional node symbols that do not contribute to the RASC 2006 - GEP pre-order tree (allows forKahrs mutation) Why GEP/GE? • separation of genotype/phenotype allows the manipulation of program individuals (optimisation) without interfering with breeding • avoids program bloat, program sizes are bounded RASC 2006 Kahrs - GEP pre-order Example, level-order traversal + sin * x 2 + x +, sin, *, x, 2, +, x, y RASC 2006 Kahrs - GEP pre-order y Example, pre-order traversal + sin + * x x 2 +, sin, *, x, 2, +, x, y RASC 2006 Kahrs - GEP pre-order y Cross-over breeding • take two individuals A and B • throw a dice to determine a crossover point k • create a new individual whose first k symbols are the first k symbols of A, and its remaining ones are all but the first k symbols of B RASC 2006 Kahrs - GEP pre-order In Pictures but it does not quite work that way, in general RASC 2006 Kahrs - GEP pre-order Arity • we can extend the notion of arity from symbols to sequences of symbols arity() = 1 arity(s·f) = arity(s)-1+arity(f), if arity(s)>0 arity(s·f) = 0, otherwise • explanation: top-down tree traversal, placing f in the unfinished tree closes an open place and opens arity(f) new ones RASC 2006 Kahrs - GEP pre-order Example • take our previous sequence +, sin, *, x, 2, +, x, y • take the initial segment of the first 5 symbols, i.e. +, sin, *, x, 2 • its arity is 1 • this means: if we draw the incomplete tree of this segment there is 1 hole left to be filled with a subtree • this incomplete tree segment would be part of the offspring if this individual fathered with RASC 2006 crossover point 5Kahrs - GEP pre-order Procreation with different arity at crossover point RASC 2006 Kahrs - GEP pre-order Trees with arity 1 and 2 at crossover point 5 + + sin x * 2 sin + x RASC 2006 sin * y x Kahrs - GEP pre-order 2 * y 1 Offspring, father left tree The subtree that has been placed in the gap is not a subtree of the mother, though it is composed from nodes from the mother + sin * x 2 * x RASC 2006 y Kahrs - GEP pre-order So... • if the arities are the same at cross-over point then subtrees of the mother are preserved • otherwise, mum is atomised and reassembled • making the fresh subtrees fairly random • problems: – asymmetric contribution in procreation RASC 2006 Kahrs - GEP pre-order – level of randomness that is hard to control A solution • replace level-order traversal with preorder traversal (which GE uses anyway) • why? in pre-order traversal subtrees occur as consecutive subsequences • notion of arity (of sequences) is unchanged! RASC 2006 Kahrs - GEP pre-order Crossover at 6, different arities + + sin x * 2 sin + x RASC 2006 sin * y x Kahrs - GEP pre-order 2 * y 1 Crossover at 6, different arities + sin * x 2 the subtrees pasted into the tree are either from the mother, or the dormant part of the mother (here: the z) + * y RASC 2006 z 1 Kahrs - GEP pre-order A problem • how do we generate the initial population? • with level-order traversal we place (random) non-nullary symbols at the beginning of the sequence, nullary symbols at the end – the result are balanced trees • if we do this with pre-order traversal we RASC 2006 lop-sided trees Kahrs - GEP pre-order get (more lists than Alternatively • we can meddle with the probabilities to prevent lop-sidedness, i.e. same probability for opening/closing a branch • problem: this gives us microbes (very small trees) and these buggers breed as if the end of the world is nigh RASC 2006 Kahrs - GEP pre-order Solution • level-order traversal works well at the beginning, pre-order traversal works well subsequently, so: why not use them this way! • create the initial population by reading a sequence as a level-order traversal • then traverse those trees pre-orderly, and overwrite the genome • from then on, use pre-order only RASC 2006 Kahrs - GEP pre-order