A less destructive, context-aware crossover operator for GP

  • Authors:
  • Hammad Majeed;Conor Ryan

  • Affiliations:
  • Biocomputing and Developmental Systems, Department of Computer Science & Information Systems, University of Limerick, Ireland;Biocomputing and Developmental Systems, Department of Computer Science & Information Systems, University of Limerick, Ireland

  • Venue:
  • EuroGP'06 Proceedings of the 9th European conference on Genetic Programming
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Standard GP crossover is widely accepted as being a largely destructive operator, creating many poor offspring in the search for better ones. One of the major reasons for its destructiveness is its disrespect for the context of swapped subtrees in their respective parent trees when creating offspring. At times, this hampers GP's performance considerably, and results in populations with low average fitness values. Many attempts have been made to make it a more constructive crossover, mostly by preserving the context of the selected subtree in the offspring. Although successful at preserving context, none of these methods provide the opportunity to discover new and better contexts for exchanged subtrees. We introduce a context-aware crossover operator which operates by identifying all possible contexts for a subtree, and evaluating each of them. The context that produces the highest fitness is used to create a child which is then passed into the next generation. We have tested its performance on many benchmark problems. It has shown better results than the standard GP crossover operator, using either the same number or fewer individual evaluations. Furthermore, the average fitness of populations using this scheme improves considerably, and programs produced in this way are much smaller than those produced using standard crossover.