Page 30 - 49A Field Guide to Genetic Programming
P. 30

16                                                 2 Tree-based GP

                        Parents                          Offspring

             Crossover
               Point        +     (x+y)+3                        +    (x/2)+3

                       +          3                         /         3

                  x          y                         x         2


             Crossover
               Point      ∗     (y+1)  (x/2)
                                     *
                    +            /

               y         1 x          2                   GARBAGE




            Figure 2.5: Example of subtree crossover. Note that the trees on the left
            are actually copies of the parents. So, their genetic material can freely be
            used without altering the original individuals.


            to crossover operations frequently exchanging only very small amounts of
            genetic material (i.e., small subtrees); many crossovers may in fact reduce
            to simply swapping two leaves. To counter this, Koza (1992) suggested the
            widely used approach of choosing functions 90% of the time and leaves 10%
            of the time. Many other types of crossover and mutation of GP trees are
            possible. They will be described in Sections 5.2 and 5.3, pages 42–46.
               The most commonly used form of mutation in GP (which we will call
            subtree mutation) randomly selects a mutation point in a tree and substi-
            tutes the subtree rooted there with a randomly generated subtree. This is
            illustrated in Figure 2.6. Subtree mutation is sometimes implemented as
            crossover between a program and a newly generated random program; this
            operation is also known as “headless chicken” crossover (Angeline, 1997).
               Another common form of mutation is point mutation, which is GP’s
            rough equivalent of the bit-flip mutation used in genetic algorithms (Gold-
            berg, 1989). In point mutation, a random node is selected and the primitive
            stored there is replaced with a different random primitive of the same arity
            taken from the primitive set. If no other primitives with that arity ex-
            ist, nothing happens to that node (but other nodes may still be mutated).
            When subtree mutation is applied, this involves the modification of exactly
            one subtree. Point mutation, on the other hand, is typically applied on a
   25   26   27   28   29   30   31   32   33   34   35