Elsevier

Pattern Recognition

Volume 40, Issue 10, October 2007, Pages 2696-2705
Pattern Recognition

Neutral offspring controlling operators in genetic programming

https://doi.org/10.1016/j.patcog.2006.10.001Get rights and content

Abstract

Code bloat, one of the main issues of genetic programming (GP), slows down the search process, destroys program structures, and exhausts computer resources. To deal with these issues, two kinds of neutral offspring controlling operators are proposed—non-neutral offspring (NNO) operators and non-larger neutral offspring (NLNO) operators. Two GP benchmark problems—symbolic regression and 11-multiplexer—are used to test the new operators. Experimental results indicate that NLNO is able to confine code bloat significantly and improve performance simultaneously, which NNO cannot do.

Introduction

The tendency of programs to grow drastically without significant corresponding improvement of performance (code bloat), one of the main issues of GP, has been noticed since GP was first proposed [1], and well-documented in the literature [2], [3], [4], [5], [6]. It also occurs in other evolutionary techniques with variable length representations [5], [7]. Code bloat limits the search of the solution space by slowing down the breeding and evaluation of the candidate solutions; it also ceases the evolutionary process by destroying the structure of the programs; additionally, huge programs exhaust available memory and computational resources. Many efforts have been made to understand the causes of code bloat and to find solutions to it. Three main hypotheses about the causes behind this phenomenon have been explored in the literature [8], [9], [10], [11], and given empirical analysis [12], [13]. The terms of intron (also called inviable, inoperative, non-effective, or neutral code) and exon are usually used when discussing code bloat [14], [15].

  • Introns are the nodes in which any change causes no change to the program's performance.

  • Exons are the nodes that are not introns.

These hypotheses are:

  • Protective effect against destructive nature of modifying operators [8]. GP derived from Genetic Algorithm (GA) is the operation of modifying operators (crossover and mutation), which replace a piece of code (a node or a subtree in GP) of a program. Unfortunately unlike GA, the removed piece of code of a GP program does not serve the same function as the added piece. This added piece of code is, to a large extent, random to the receiver. Therefore, such modifying operations, if they work on exons, usually produce poorer offspring; while operations on introns generate neutral offspring (bearing the same performance with its parent) [16]. Therefore programs with larger proportion of introns have a better chance to produce a neutral offspring, instead of a usually poorer one. Hence programs with more introns have a better chance to survive through the evolutionary process, i.e., there is a bias towards generating more introns in the population.

  • Drift towards larger programs. Langdon and Poli [17] argued that the distribution of the semantically equivalent programs in the solution space has a positive effect on code bloat. Because of the existence of introns, given a program, infinitely larger programs with the same behavior can be produced by adding different nodes under introns in the program tree. Therefore the population is likely to drift towards larger programs because there are more of them with better performance. Furthermore, exons have similar effect too. Given a program, there are limited smaller ones and unlimited larger ones, therefore there are many more larger programs with very similar performance and different exon structures than smaller ones. Hence there is a better chance to form larger programs of similar performance with less effective code. Therefore by this hypothesis, programs drift towards larger size by increasing introns and less effective exons.

  • Removal bias. Soule and Foster [10] in their paper proved that introns tend to occur further from the root than exons do. Even for the exons, the nearer a node is to the root, it is generally more significant to the output. We can conclude that removing larger subtrees has more effect on the program behavior, hence it tends to decrease the performance to a greater extent. Meanwhile, the added subtree, due to its randomicity, does not have the same functional contribution as the removed one. Therefore in a subtree substitution operation, there is a negative relationship between the size of the removed subtree and the offspring performance, whereas there is no evident relationship between the size of the added subtree and the offspring performance.

Many different approaches have been considered to fight against code bloat: parsimony pressure (modifying fitness value to penalize large programs) [18], [19], code editing [20], and many modifications to the operators [3], [4], [21], [22]. We focus on neutral offspring (the offspring with the same performance with their parents). Neutral offspring are believed to be mainly created by operating on introns, because it is reasonable to assume that most offspring that are created by modifying exons change their fitness values, especially for problems with continuous fitness values in the solution space, such as symbolic regression. Hence dealing with neutral offspring provides a chance to control introns, and thereby code bloat.

Section 2 presents the neutral offspring controlling operators. Section 3 presents a diversity preserving mechanism that is necessary for applying the new methods. Section 4 discusses parsimony pressure used in our experiments. Section 5 introduces offspring distribution, which is used to analyze intron growth. Section 6 describes the two problems under test. Experiments, both with and without parsimony pressure, are discussed in Section 7, which are summarized in Section 8, and concluded in Section 9.

Section snippets

Neutral offspring controlling operators

Offspring can be divided into improved offspring, neutral offspring and worsened offspring, with respect to their fitness in comparison with their parents. We can further separate the neutral offspring that are larger in size than their parents (LNO) and those that are smaller in size than their parents (SNO) (Fig. 1). An LNO actually has the same exon structure with its parent, but with more introns, and SNO has the same exon structure with less introns. By the protective hypothesis, the

Diversity preserving mechanism

Our preliminary tests on NNO and NLNO show noticeable premature convergence, and the consequent poor results, as well as limiting code growth considerably. As mentioned in the last section, it is because some of the crossovers and mutations on introns have become reproductions. A large proportion of reproductions lead to too many copies of best programs, and thus premature convergence. This happens in Altenberg's non-destructive crossovers as well [23]. It was noticed that non-destructive

Parsimony pressure

Parsimony pressure is a simple and popular way to control code bloat [25]. Parsimony pressure is applied because NNO and NLNO are not strong enough to cope with code bloat alone. Parsimony pressure can usually reduce code bloat significantly; but when it is too strong, it presses programs to very small size and prevents finding better programs with larger size. Our aim is to introduce neutral offspring controlling approaches to help parsimony pressure confine code bloat better without

Offspring distribution

By the definition of intron and exon, we can easily derive such corollary: all nodes in a subtree rooted at an intron are introns, hence any operation on such a subtree results in no change in performance. Therefore, subtree modifying operators do not change performance when picking an intron to operate on, while changing performance in most cases when picking an exon to operate on. It is reasonable to assume that the probability for an operation on an exon to retain performance is small,

Test problems

Two benchmark problems are addressed in this paper: symbolic regression and 11-multiplexer.

Experiments

Since parsimony pressure and the proposed approaches both confine code bloat, the effect of NNO and NLNO on code bloat should appear more evidently when parsimony pressure is absent. Therefore experiments without parsimony pressure are conducted first to analyze the behavior of NNO and NLNO when dealing with introns, and then experiments on these two methods in conjunction with parsimony pressure are conducted, showing how they cooperate with each other. Table 3 lists the parameters for all the

Summary on the experiments

A summary of all the tests are listed in Table 4. The average program size over all generations and the error of the final solutions are compared. Average program size over all generations is roughly proportional to the time consumed, because each node in a program tree is executed once during evaluation. It is clear that other than parsimony pressure, NLNO also has significant ability to control code bloat, since the NLNO-produced programs are smaller than those of the standard approach in all

Conclusion

In many problems code bloat slows down the search process, destroys program structures, and exhausts computer resources. To circumvent these, two kinds of neutral offspring controlling operators have been proposed—non-neutral offspring (NNO) operators and non-larger neutral offspring (NLNO) operators. Two genetic programming benchmark problems—symbolic regression and 11-multiplexer—have been used to test these proposed new operators. Fifty runs were conducted for each set of parameters, the

Acknowledgment

Thanks must go to Dr. L.B. Jack for many useful suggestions and discussions during coding and experiments.

About the Author—LIANG ZHANG received a B.Sc. degree in Electronic Engineering from Beijing Polytechnic University in 2002. He is currently working towards his Ph.D. degree at the University of Liverpool. His research interests include genetic programming and its applications to machine condition monitoring.

References (29)

  • J.R. Koza

    Genetic Programming: On the Programming of Computers by Means of Natural Selection

    (1992)
  • P. Nordin, F. Francone, W. Banzhaf, Explicitly defined introns and destructive crossover in genetic programming,...
  • P.W.H. Smith et al.

    Code growth, explicitly defined introns, and alternative selection schemes

    Evol. Comput.

    (1998)
  • W.B. Langdon, Size fair and homologous tree genetic programming crossovers, in: Proceedings of the Genetic and...
  • W.B. Langdon, Quadratic bloat in genetic programming, in: Proceedings of the Genetic and Evolutionary Computation...
  • W. Banzhaf et al.

    Some considerations on the reason for bloat

    Genet. Programming Evolvable Mach.

    (2002)
  • W.B. Langdon, The evolution of size in variable length representations, in: 1998 IEEE International Conference on...
  • T. Blickle, L. Thiele, Genetic programming and redundancy, in: Genetic Algorithms within the Framework of Evolutionary...
  • N.F. McPhee, J.D. Miller, Accurate replication in genetic programming, in: Genetic Algorithms: Proceedings of the Sixth...
  • T. Soule, J.A. Foster, Removal bias: a new cause of code growth in tree based evolutionary programming, in: 1998 IEEE...
  • W.B. Langdon, T. Soule, R. Poli, J.A. Foster, The evolution of size and shape, Advances in Genetic Programming, vol....
  • T. Soule, Code growth in genetic programming, Ph.D. Thesis, The University of Idaho,...
  • T. Soule, R.B. Hechendorn, An analysis of the causes of code growth in genetic programming, in: Genetic Programming and...
  • P.J. Angeline

    Genetic Programming and Emergent Intelligence

    (1994)
  • Cited by (4)

    About the Author—LIANG ZHANG received a B.Sc. degree in Electronic Engineering from Beijing Polytechnic University in 2002. He is currently working towards his Ph.D. degree at the University of Liverpool. His research interests include genetic programming and its applications to machine condition monitoring.

    About the Author—ASOKE K. NANDI received the degree of Ph.D. from the University of Cambridge (Trinity College), Cambridge, in 1979. He held several research positions in Rutherford Appleton Laboratory, European Organisation for Nuclear Research (Switzerland), Queen Mary College (London) and the University of Oxford. In 1987, he joined the Imperial College, London, as the Solartron Lecturer in Signal Processing. In 1991, he joined the University of Strathclyde, Glasgow, as a Senior Lecturer; subsequently, he was appointed a Reader in 1995 and a Professor in 1998. In March 1999 he moved to the University of Liverpool, Liverpool, to take up the appointment of the David Jardine Chair of Signal Processing.

    In 1983 he was a member of the UA1 team at CERN that discovered the three fundamental particles known as W+, W- and Zo providing the evidence for the unification of the electromagnetic and weak forces, which was recognized by the Nobel Committee for Physics in 1984. Currently, he is the Head of the Signal Processing and Communications Research Group. His research interests include machine condition monitoring, artificial neural networks and support vector machines, genetic programming and blind source separation. He has authored or co-authored over 300 technical publications including two books.

    View full text