180 likes | 309 Views
Automatically Defined Functions. Used to evolve modular programs Architecture implemented by Koza Architecture implemented by Bruce Function calls A critical analysis of ADFs Applications. Architecture Implemented by Koza.
E N D
Automatically Defined Functions • Used to evolve modular programs • Architecture implemented by Koza • Architecture implemented by Bruce • Function calls • A critical analysis of ADFs • Applications
Architecture Implemented by Koza • Each individual of the population is represented by a tree containing one or more function-defining (function) branches and a results-producing branch (main program).
Extensions to GP System • GP parameters • Number of ADFs • Number of arguments for each ADF • Initial population generation • Structure- preserving crossover • Typing • Branch typing • Point typing
Architecture Implemented by Bruce • Each individual is represented as an array of trees, one representing the main program and the rest one or more ADFS. • The user has to specify the number of trees in each genotype. • The user must also specify how the evaluation of each tree will contribute to calculating the overall fitness of the individual. • Architecture simpler and more general than Koza’s.
Extensions to the GP System • Size of the genotype • Functions calls • Initial population generation • Crossover
Function Calls • There are no references between the function-defining branches. • References among function-defining branches are not restricted. • A function may hierarchically call those functions that have been defined before it, e.g. ADFO can call ADF1 but not vice versa.
Critical Analysis • The use of ADFs is not beneficial for simple problems. ADFs are beneficial for complex problems. ADFs produce parsimonious solutions for difficult problems. • One of the disadvantages of using ADFs is that the user has to define the entire architecture prior to a simulation. • The benefits of using ADFs increases with the difficulty of the problem. • The use of automatically defined functions decreases the computational effort needed to find a solution as well as increases the parsimony of solutions provided that the problem is of sufficient difficulty. • A GP system incorporating the use of ADFs has the lens effect, i.e. a GP system with ADFs tend to find individuals that have extreme scores.
Application 1 • Objective: Induce an equation that calculates the volume of a 2-dimensional box. • Architecture:One result-producing branch; one function-producing branch defining the ADF ADF0 with has three arguments. • Typing: Branch • Terminal set for the results-producing branch: Tr = {L0, W0, H0, L1, W1, H1 } • Function set for the results-producing branch: Fr = {+, -, *, /, ADFO }
Application 1 • Terminal set for the function-producing branch: The three dummy variables: Tf = { ARG0, ARG1, ARG2} • Function set for the results-producing branch: Ff = {+, -, *, /} • Number of generations: 51 • Population size: 4000 • Raw Fitness: Error Formula
Application 1 • Hits criterion: The number of fitness cases for which the value calculated by the induced program is within 0.01 of the target value. • Method of selection:Fitness proportionate selection. • Initial population generator: The ramped half-and-half method with an initial tree depth of six and a depth limit of seventeen on the size of trees created by the genetic operators. • Fitness cases: The six dimensions of the box
Application 1 • Genetic Operations: • Reproduction –10% • Mutation – 0% • Crossover – 90% • In this particular example the use of ADFs has not decreased the computation effort needed to find a solution or the average structural complexity.
Application 2 • Function to generate: Induce a program that produces the value of x6 – 2x4+x2 , given x. • Architecture of overall program: One result-producing branch; one function-producing branch defining the ADF ADF0 that has one argument. • Typing: Branch typing • Terminal set for the results-producing branch: Tr = {X, U } where U is in the interval[-1.0, 1.0]. • Function set for the results-producing branch: Fr = {+, -, *, /, ADFO }
Application 2 • Terminal set for the function-producing branch: Tf = { ARG0,U } where U is in the interval [-1.0, 1.0]. • Function set for the function-producing branch: Ff = {+, -, *, /} • Number of generations: 51 • Population size: 4000 • Raw Fitness: Error formula • Hits criterion: The number of fitness cases for which the value calculated by the induced program is within 0.01 of the target value.
Application 2 • Method of selection:Fitness proportionate selection. • Initial population generator: The ramped half-and-half method with an initial tree depth of six and a depth limit of seventeen on the size of trees created by the genetic operators. • Fitness cases: Fifty values are chosen randomly from the interval [-1.00, 1.00] • Genetic operators: • Crossover – 90% • Reproduction – 10%