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.
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)
Banzhaf, W., Langdon, W.: Some considerations on the reasons for bloat. Genet. Program. Evol. Mach. 3(1), 81–91 (2002)
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)
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)
De Jong, E., Pollack, J.: Multi-objective methods for tree size control. Genet. Program. Evol. Mach. 4(3), 211–233 (2003)
Deb, K.: Multi-objective Optimization using Evolutionary Algorithms. Wiley, New York (2002)
Duda, R.O., Hart, P.E., Stork, D.G.: Pattern Classification, 2nd edn. Wiley, New York (2001)
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)
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)
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)
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)
Koza, J.: Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, Cambridge (1992)
Koza, J.: Genetic Programming II: Automatic Discovery of Reusable Programs. MIT Press, Cambridge (1994)
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)
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)
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)
Luke, S.: Modification point depth and genome growth in genetic programming. Evol. Comput. 11(1), 67–106 (2003)
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)
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)
Olssen, R.: Inductive functional programming using incremental program transformation. Artif. Intell. 74(1), 55–81 (1995)
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)
Poli, R., Langdon, W.: Foundations of Genetic Programming. Springer, Berlin (2002)
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)
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)
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)
Zhang, B.-T., Mühlenbein, H.: Balancing accuracy and parsimony in genetic programming. Evol. Comput. 3(1), 17–38 (1995)
Author information
Authors and Affiliations
Corresponding author
Rights 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
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10732-007-9060-0