Skip to main content
Log in

Efficient tree traversal to reduce code growth in tree-based genetic programming

  • Published:
Journal of Heuristics Aims and scope Submit manuscript

Abstract

Genetic programming is an evolutionary optimization method following the principle of program induction. Genetic programming often uses variable-length tree structures for representing candidate solutions. A serious problem with variable-length representations is code growth: during evolution these tree structures tend to grow in size without a corresponding increase in fitness. Many anti-bloat methods focus solely on size reduction and forget about fitness improvement, which is rather strange when using an “optimization” method. This paper reports the application of a semantically driven local search operator to control code growth and improve best fitness. Five examples, two theoretical benchmark applications and three real-life test problems are used to illustrate the obtained size reduction and fitness improvement. Performance of the local search operator is also compared with various other anti-bloat methods such as size and depth delimiters, an expression simplifier, linear and adaptive parsimony pressure, automatically defined functions and Tarpeian bloat control.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Angeline, P., Pollack, J.B.: Coevolving high-level representations. In: Langton, C.G. (ed.) Proceedings of Artificial Life III, pp. 55–71. Addison-Wesley, Reading (1991)

    Google Scholar 

  • Banzhaf, W., Langdon, W.: Some considerations on the reasons for bloat. Genet. Program. Evol. Mach. 3(1), 81–91 (2002)

    Article  MATH  Google Scholar 

  • Banzhaf, W., Francone, F., Keller, R., Nordin, P.: Genetic Programming: An Introduction: On the Automatic Evolution of Computer Programs and Its Applications. Morgan Kaufmann, San Francisco (1997)

    Google Scholar 

  • Bersano-Begey, T., Daida, J.: A discussion on generality and robustness and a framework for fitness set construction in genetic programming to promote robustness. In: Koza, J. (ed.) Late Breaking Papers at the 1997 Genetic Programming Conference, pp. 11–18. Stanford University (1997)

  • Blickle, T.: Evolving compact solutions in genetic programming: a case study. In: Voigt, H.-M., Ebeling, W., Rechenberg, I., Schwefel, H.-P. (eds.) Parallel Problem Solving from Nature-PPSNIV. Lecture Notes in Computer Science, vol. 1141, pp. 564–573. Springer, Berlin (1996)

    Chapter  Google Scholar 

  • De Jong, E., Pollack, J.: Multi-objective methods for tree size control. Genet. Program. Evol. Mach. 4(3), 211–233 (2003)

    Article  Google Scholar 

  • Deb, K.: Multi-objective Optimization using Evolutionary Algorithms. Wiley, New York (2002)

    Google Scholar 

  • Duda, R.O., Hart, P.E., Stork, D.G.: Pattern Classification, 2nd edn. Wiley, New York (2001)

    MATH  Google Scholar 

  • Ekart, A.: Controlling code growth in genetic programming by mutation. In: Langdon, W., Poli, R., Nordin, P., Fogarty, T. (eds.) Late Breaking Papers of Euro-GP 99, pp. 3–12 (1999)

  • Ekart, A., Nemeth, S.: Selection based on the Pareto nondominance criterion for controlling code growth in genetic programming. Genet. Program. Evol. Mach. 2(1) (2001)

  • Esparcia-Alcazar, A.I., Sharman, K.: Evolving recurrent neural network architectures by genetic programming. In: Koza, J.R., Deb, K., Dorigo, M., Fogel, D.B., Garzon, M., Iba, H., Riolo, L. (eds.) Genetic Programming 1997: Proceedings of the Second Annual Conference, pp. 89–94. Morgan Kaufmann, San Francisco (1997)

    Google Scholar 

  • Higgins J.J.: Introduction to Modern Nonparametric Statistics. Duxbury Press (2003)

  • Hooper, D., Flann, N.: Improving the accuracy and robustness of genetic programming through expression simplification. In: Koza, J., Goldberg, D., Fogel, D., Riolo, R. (eds.) Genetic Programming 1996: Proceedings of the First Annual Conference, pp. 28–31 (1996)

  • Iba, H., de Garis, H., Sato, T.: Genetic programming using a minimum description length principle. In: Kinnear, K.E. (ed.) Advances in Genetic Programming, pp. 265–284. MIT Press, Cambridge (1994)

    Google Scholar 

  • Kinnear, K.: Generality and difficulty in genetic programming: evolving a sort. In: Forrest, S. (ed.) Proceedings of the Fifth International Conference on Genetic Algorithms, pp. 287–294. Morgan Kaufmann, San Francisco (1993)

    Google Scholar 

  • Kinnear, K.: Alternatives in automatic function definition comparison of performance. In: Kinnear, K.E. (ed.) Advances in Genetic Programming, pp. 119–141. MIT Press, Cambridge (1994)

    Google Scholar 

  • Koza, J.: Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, Cambridge (1992)

    MATH  Google Scholar 

  • Koza, J.: Genetic Programming II: Automatic Discovery of Reusable Programs. MIT Press, Cambridge (1994)

    MATH  Google Scholar 

  • Krawiec, K.: Genetic programming with local improvement for visual learning from examples. In: Skarbek, W. (ed.) Computer Analysis of Images and Patterns. Lecture Notes in Computer Science, vol. 2124, pp. 209–216. Springer, Berlin (2001)

    Chapter  Google Scholar 

  • Langdon, W.: Size fair and homologous tree genetic programming crossovers. In: Banzhaf, W., Daida, J., Eiben, A., Garzon, M., Honavar, V., Jakiela, M. (eds.) Proceedings of the Genetic and Evolutionary Computation Conference, pp. 1092–1097. Morgan Kaufmann, San Francisco (1999)

    Google Scholar 

  • Langon, W.B., Nordin, P.: Seeding GP populations. In: Genetic Programming, Proceedings of EuroGP’2000. Lecture Notes in Computer Science, vol. 1802, pp. 304–315. Springer, Berlin (2000)

    Google Scholar 

  • Luke, S.: Modification point depth and genome growth in genetic programming. Evol. Comput. 11(1), 67–106 (2003)

    Article  Google Scholar 

  • Luke, S., Panait, L.: Fighting bloat with nonparametric parsimony pressure. In: Guervos, J.M., Adamidis, P., Beyer, H.-G., Fernandez-Villacanas, J.-L., Schwefel, H.-P. (eds.) Parallel Problem Solving from Nature VII. Lecture Notes in Computer Science, vol. 2439, pp. 411–421. Springer, Berlin (2002)

    Chapter  Google Scholar 

  • Newman, D., Hettich, S., Blake, C., Merz, C.: UCI repository of machine learning databases (1998), http://www.ics.uci.edu/~mlearn/MLRepository.html

  • Nordin, P., Banzhaf, W., Francone, F.: Introns in nature and in simulated structure evolution. In: Lundt, D., Olsson, B., Narayanan, A. (eds.) Proceedings Bio-Computing and Emergent Computation, pp. 19–33. World Scientific, Singapore (1997)

    Google Scholar 

  • Olssen, R.: Inductive functional programming using incremental program transformation. Artif. Intell. 74(1), 55–81 (1995)

    Article  Google Scholar 

  • Poli, R.: A simple but theoretically-motivated method to control bloat in genetic programming. In: Ryan, C., Soule, T., Keijzer, M., Tsang, E. (eds.) Proceedings of EuroGP 2003. Lecture Notes in Computer Science, vol. 2610, pp. 204–217. Springer, Berlin (2003)

    Google Scholar 

  • Poli, R., Langdon, W.: Foundations of Genetic Programming. Springer, Berlin (2002)

    Book  MATH  Google Scholar 

  • Punch, B., Zongker, D.: Lilgp 1.01 user’s manual. Technical report, Michigan State University, Michigan, USA (1996)

  • Rosca, J.: Generality versus size in genetic programming. In: Koza, J., Goldberg, D., Fogel, D., Riolo, R. (eds.) Genetic Programming 1996: Proceedings of the First Annual Conference, pp. 381–387 (1996)

  • Rosca, J.P., Ballard, D.H.: Hierarchical self-organization in genetic programming. In: Proceedings of the Eleventh International Conference on Machine Learning, pp. 251–258. Morgan Kaufmann, San Francisco (1994)

    Google Scholar 

  • Schaffer, J.: Multiple objective optimization with vector evaluated genetic algorithms. In: Grefestette, J. (ed.) Proceedings of 1st International Conference on Genetic Algorithms, pp. 93–100. Lawrence Erlbaum Associates (1985)

  • Soule, T., Foster, J.: Effects of code growth and parsimony pressure on populations in genetic programming. Evol. Comput. 6(4), 293–309 (1998)

    Article  Google Scholar 

  • Zhang, B.-T., Cho, D.-Y.: Genetic programming with active data selection. In: McKay, B., Yao, X., Newton, C., Kim, J.-H., Furuhashi, T. (eds.) Simulated Evolution and Learning: Second Asia-Pacific Conference on Simulated Evolution and Learning. Lectures Notes in Computer Science, vol. 1585, pp. 146–153. Springer, Berlin (1999)

    Google Scholar 

  • Zhang, B.-T., Mühlenbein, H.: Balancing accuracy and parsimony in genetic programming. Evol. Comput. 3(1), 17–38 (1995)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Bart Wyns.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Wyns, B., Boullart, L. Efficient tree traversal to reduce code growth in tree-based genetic programming. J Heuristics 15, 77–104 (2009). https://doi.org/10.1007/s10732-007-9060-0

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10732-007-9060-0

Keywords

Navigation