Advertisement

Journal of Heuristics

, Volume 15, Issue 1, pp 77–104 | Cite as

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

  • Bart WynsEmail author
  • Luc Boullart
Article

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.

Keywords

Tree traversal Subtree fitness Code growth Local optimization Tree-based genetic programming 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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
  2. Banzhaf, W., Langdon, W.: Some considerations on the reasons for bloat. Genet. Program. Evol. Mach. 3(1), 81–91 (2002) zbMATHCrossRefGoogle Scholar
  3. 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
  4. 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) Google Scholar
  5. 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) CrossRefGoogle Scholar
  6. De Jong, E., Pollack, J.: Multi-objective methods for tree size control. Genet. Program. Evol. Mach. 4(3), 211–233 (2003) CrossRefGoogle Scholar
  7. Deb, K.: Multi-objective Optimization using Evolutionary Algorithms. Wiley, New York (2002) Google Scholar
  8. Duda, R.O., Hart, P.E., Stork, D.G.: Pattern Classification, 2nd edn. Wiley, New York (2001) zbMATHGoogle Scholar
  9. 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) Google Scholar
  10. 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) Google Scholar
  11. 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
  12. Higgins J.J.: Introduction to Modern Nonparametric Statistics. Duxbury Press (2003) Google Scholar
  13. 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) Google Scholar
  14. 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
  15. 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
  16. 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
  17. Koza, J.: Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, Cambridge (1992) zbMATHGoogle Scholar
  18. Koza, J.: Genetic Programming II: Automatic Discovery of Reusable Programs. MIT Press, Cambridge (1994) zbMATHGoogle Scholar
  19. 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) CrossRefGoogle Scholar
  20. 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
  21. 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
  22. Luke, S.: Modification point depth and genome growth in genetic programming. Evol. Comput. 11(1), 67–106 (2003) CrossRefGoogle Scholar
  23. 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) CrossRefGoogle Scholar
  24. Newman, D., Hettich, S., Blake, C., Merz, C.: UCI repository of machine learning databases (1998), http://www.ics.uci.edu/~mlearn/MLRepository.html
  25. 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
  26. Olssen, R.: Inductive functional programming using incremental program transformation. Artif. Intell. 74(1), 55–81 (1995) CrossRefGoogle Scholar
  27. 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
  28. Poli, R., Langdon, W.: Foundations of Genetic Programming. Springer, Berlin (2002) zbMATHCrossRefGoogle Scholar
  29. Punch, B., Zongker, D.: Lilgp 1.01 user’s manual. Technical report, Michigan State University, Michigan, USA (1996) Google Scholar
  30. 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) Google Scholar
  31. 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
  32. 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) Google Scholar
  33. Soule, T., Foster, J.: Effects of code growth and parsimony pressure on populations in genetic programming. Evol. Comput. 6(4), 293–309 (1998) CrossRefGoogle Scholar
  34. 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
  35. Zhang, B.-T., Mühlenbein, H.: Balancing accuracy and parsimony in genetic programming. Evol. Comput. 3(1), 17–38 (1995) CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC 2007

Authors and Affiliations

  1. 1.Department of Electrical Energy, Systems & AutomationGhent UniversityZwijnaardeBelgium

Personalised recommendations