Genetic Programming What is it? Genetic Programming Genetic programming (GP) is an automated method for creating a working computer program from a high-level problem statement of a problem. Genetic programming starts from a high- level statement of “what needs to be done” and automatically creates a computer program to solve the problem. 1 2 Genetic Programming Genetic Programming John Koza, 1992 “Genetic Programming: On the Programming of Computers by Means of Natural Selection“ www.genetic-programming.com 3 4 Genetic Programming Genetic Programming In genetic programming: In Koza’s original work Problem -- involves not finding a solution, LISP was used as the programming but instead creating a program that can language find the best solution. Parse trees were used as the genotype. Phenotype (solution) is a computer program Straight-forward genetic mapping Search space is the set of all possible Functional program --> parse tree. computer programs. 5 6 1
LISP and parse trees Genetic Programming GPs fit well within the EA framework (defun o() sqrt (setf A 1.52) (sqtr (* A (* A A )))) Important distinction: * Genotype = tree * Phenotype = LISP program A A A Mitchell 7 8 GPs as EAs Defining your problem For programs to be be evolved, must define: To use evolutionary algorithms you must: Define your problem -- must provide hints to functional Terminal Set building blocks Leaves of the parse tree Define your genotype Correspond to program inputs Identify your phenotype Function Set Define the genotype -> phenotype translation Interior nodes of parse tree Define crossover and mutation operators Set of functions allowable in program Define fitness Should be chosen with relation to problem to be solved. Determine selection criteria Can have side effects. Set population parameters 9 10 Defining your problem GPs as EAs Sufficiency and Closure To use evolutionary algorithms you must: Sufficiency Define your problem -- must provide hints to functional building blocks terminals + functions must be able to solve the Define your genotype -- parse trees problem at hand Identify your phenotype -- LISP program Choose your terminal and function set wisely Define the genotype -> phenotype translation Closure Define crossover and mutation operators Functions should be able to accept as Define fitness argument any value returned by other Determine selection criteria functions Set population parameters Universal return type. 11 12 2
GPs: Crossover and Mutation GPs: Crossover and Mutation Crossover crossover mutation Choose random sub-tree from each parent Swap them in resultant children Mutation Before crossover Before mutation Replace randomly chosen sub-tree with randomly After crossover After mutation generated tree. Can result in increasing / decreasing the size of the genome. Note that operation maintain valid individuals. 13 14 GPs and crossover GPs as EAs To use evolutionary algorithms you must: Define your problem -- must provide hints to functional building blocks Define your genotype -- parse trees Identify your phenotype -- LISP program Define the genotype -> phenotype translation Define crossover and mutation operators Define fitness Determine selection criteria Set population parameters 15 16 Fitness GPs as EAs Evaluate the effectiveness of the To use evolutionary algorithms you must: program to solve the problem Define your problem -- must provide hints to functional building blocks Define your genotype -- parse trees Identify your phenotype -- LISP program Two stage fitness: Define the genotype -> phenotype translation Run resultant program Define crossover and mutation operators Define fitness Compare to correct / desired results Determine selection criteria Set population parameters 17 18 3
GPs as EAs GPs as EAs In Koza’s original work: To use evolutionary algorithms you must: Define your problem -- must provide hints to functional 10% of individuals will move to next building blocks generation Define your genotype -- parse trees Probability based on Fitness Identify your phenotype -- LISP program Define the genotype -> phenotype translation 90% formed by crossover Define crossover and mutation operators Parent chosen probabilistically based on fitness Define fitness Koza does not use mutation. Determine selection criteria Set population parameters 19 20 Initializing population Trivial example Randomly creating programs. From Mitchell Must assure that trees match valid Program to compute P, the orbital period programs. of a planet. Number of function arguments must match. Parameters A = average distance from the sun. Usually a limit is set on tree depth of generated program. Known solution: P 2 = cA 3 c = constant. Questions so far 21 22 Trivial example Trivial example Terminal set: A = average distance from the sun Function set: Typical arithmetic operations: +, -, *, /, sqrt Closure -- Note that all take float and return float 23 24 4
Trivial example Trivial example Sample solutions Fitness: 25 26 More interesting Example Other GP variants Block stacking problem Strongly typed GP Koza 1992 as described by Mitchell Gets around the closure idea Given: Function arguments are typed Set of blocks that can either be Individual generation and genetic On a stack On a table. operators must respect the types. Goal: Find a program that will place the blocks on the stack in the “correct” order. 27 28 Building Block Example Factoids about Genetic Programming More elaborate scheme to solve this: From Koza’s Web site There are now 36 instances where genetic Using Strongly Typed GPs programming has produced a human-competitive Found in [Kochenderfer] result. 15 instances where GP has created an entity that either infringes or duplicates the functionality of a previous patent 6 instances where genetic programming has done the same with respect to a 21st-centry invention Questions? 2 instances where genetic programming has created a patentable new invention. 29 30 5
Genetic Programming Factoids about Genetic Programming GPs themselves were patented by Koza: In Koza’s original work LISP was used as the programming language Koza, John R. Non-Linear Genetic Algorithms for Solving Problems. Parse trees were used as the genotype. US Patent 4,935,877. Issued June 19, 1990. Australian Patent 611,350. Issued September 21, 1991. Straight-forward genetic mapping Canadian Patent 1,311,561. Issued December 15, 1992. Functional program --> parse tree. German patent 3916328.8-53. Issued June 18, 1997. Not the only way to do genetic programming. 31 32 Genetic Programming GPs as GAs In genetic programming: GADS Problem -- involves not finding a solution, [Paterson, Livesey] but instead creating a program that can find the best solution. Phenotype = program Phenotype (solution) is a computer program Genotype = n-tuple (array). Search space is the set of all possible computer programs. Genotype need not be a parse tree! 33 34 Languages as grammars Phenotype Representation Grammars for programming languages Phenotype is a program in a given language Language is defined by a grammar in BNF. <stmt> → … | <for-stmt> | <if-stmt> | … Each production in the grammar is uniquely <stmt> → { <stmt> <stmt> } | ε numbered. <if-stmt> → if ( <expr> ) then <stmt> <for-stmt> → for ( <expr> ; <expr> ; lhs → rhs <expr> ) <stmt> <sexpr> → (GT <sexpr> <sexpr>) 35 36 6
Phenotype Representation Genotype representation A valid program can be described by a sequence of applications of grammar rules. Genotype = tuple or array representing this sequence. Let’s try: (GT (* -1 X) (* V (ABS V) ) ) Can use “standard” GA operators for tuples for crossover and mutation. 37 38 Genetic Mapping Genetic Mapping Genetic Repairs Required: Genetic Repairs Required: Inapplicable productions. Inapplicable productions. Assume after a number of production Genetic repair: skip the problematic gene and applications (as defined by a genome) the progress to the first gene that has an generated program is: appropriate lhs. (GT <sexpr> <numeral>) What if the the production of the next gene does NOT have a lhs of <sexpr> or <numeral>? 39 40 Genetic Mapping Genetic Mapping Genetic Repairs Required: Genetic Repairs Required: Residual non-terminals Residual non-terminals What if…after all productions associated to all Reject this individual or genes have been applied and there are still Have each non-terminal have a default terminal non-terminals in the program? value and use this default. 41 42 7
Recommend
More recommend