180 likes | 320 Vues
This document provides an in-depth examination of Automatically Defined Functions (ADFs) in genetic programming (GP), including architectures implemented by Koza and Bruce. It analyzes their utility in evolving modular programs, demonstrating how each individual in the population is represented by a tree structure comprising function-defining and results-producing branches. Key aspects such as initial population generation, function calls, and critical analysis of ADFs are discussed, alongside practical applications for complex problems where ADFs enhance solution parsimoniousness.
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%