Skip to main content
Log in

Hierarchical Processing for Evolving Recursive and Modular Programs Using Higher-Order Functions and Lambda Abstraction

  • Published:
Genetic Programming and Evolvable Machines Aims and scope Submit manuscript

Abstract

We present a novel approach using higher-order functions and λ abstraction to evolve recursive and modular programs. Moreover, a new term “structure abstraction” is introduced to describe the property emerged from the higher-order function program structure. We test this technique on the general even-parity problem. The results indicate that this approach is very effective with the general even-parity problem due to the appropriate selection of the foldr higher-order function. Initially, foldr structure abstraction identify the promising area of the search space at generation zero. Once the population is within the promising area, foldr structure abstraction provides hierarchical processing for search. Consequently, solutions to the general even-parity problem are found very efficiently. We identify the limitations of this new approach and conclude that only when the appropriate higher-order function is selected that the benefits of structure abstraction show.

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

  1. P. J. Angeline and J. Pollack, “The evolutionary induction of subroutines,” The Fourteenth Annual Conference of the Cognitive Science Society, Lawrence Erlbaum: Bloomington, Indiana, 1992, pp. 236-241.

    Google Scholar 

  2. P. J. Angeline and J. Pollack, “Evolutionary module acquisition,” in Proc. Second Annual Conf. Evolutionary Programming, D. B. Fogel and W. Atmar (eds.), Evolutionary Programming Society: La Jolla, CA, 1993, pp. 154-163.

    Google Scholar 

  3. P. J. Angeline, “Genetic programming and emergent intelligence,” in Advances in Genetic Programming, K. E. Kinnear, Jr. (ed.), MIT Press: Cambridge, MA, 1994, pp. 75-98.

    Google Scholar 

  4. P. J. Angeline, “A historical perspective on the evolution of executable structures,” Fundamenta Informaticae, vol. 36(1-4), pp. 179-195, 1998.

    Google Scholar 

  5. W. Banzhaf D. Banscherus, and P. Dittrich, “Hierarchical genetic programming using local modules,” Reihe cl 56/98. SFB 531, University of Dortmund, 1998.

  6. A. S. Bickel and R. W. Bickel, “Tree structured rules in genetic algorithms,” in Genetic Algorithms and Their Applications, Proc. Second Int. Conf. Genetic Algorithms, J. J. Grefenstette (ed.), Lawrence Erlbaum: Cambridge, MA, pp. 77-81, 1987.

    Google Scholar 

  7. S. Brave, “Evolving recursive programs for tree search,” Advances in Genetic Programming II, P. J. Angeline and K. E. Kinnear, Jr. (eds.), MIT Press: Cambridge, MA, 1996, pp. 203-219. hierarchical processing 379

    Google Scholar 

  8. K. Chellapilla, “Evolving computer programs without subtree crossover,” IEEE Trans. Evolutionary Comput., vol. 1(3), pp. 209-216, 1997.

    Google Scholar 

  9. N. L. Cramer, “Representation for the adaptive generation of simple sequential programs,” in Proc. Int. Conf. Genetic Algorithms and Their Applications, J. J. Grefenstette (ed.), Lawrence Erlbaum: Hillsdale, NJ, 1985, pp. 183-187.

    Google Scholar 

  10. A. Dessi A. Giani, and A. Starita, “An analysis of automatic subroutine discovery in genetic programming,” in Proc. Genetic and Evolutionary Comput. Conf., W. Banzhaf J. Daida A. Eiben M. Garzon V. Hanavar M. Jakiela, and R. Smith (eds.), Morgan Kaufmann: Los Altos, CA, 1999, pp. 996-1001.

    Google Scholar 

  11. Discipulus, Register Machine Learning Technologies, Inc. Littleton, CO, 1998.

  12. L. J. Fogel A. J. Owens, and M. J. Walsh, Artificial Intelligence through Simulated Evolution, Wiley: New York, 1966.

    Google Scholar 

  13. R. M. Friedberg, “A learning machine: Part I,” IBM J. Research and Development, vol. 2(1), pp. 2-13, 1958.

    Google Scholar 

  14. R. M. Friedberg B. Dunham, and J. H. North, “A learning machine: Part II,” IMB J. Research and Development, vol. 3, pp. 282-287, 1959.

    Google Scholar 

  15. C. Fujiki, An evaluation of Holland's genetic operators applied to a program generator, Master's thesis, University of Idaho, Moscow, ID.

  16. C. Fujiki and J. Dickinson, “Using the genetic algorithm to generate LISP source code to solve the prisoner's dilemma,” in Genetic Algorithms and Their Applications, Proc. Second Int. Conf. Genetic Algorithms, J. J. Grefenstette (ed.), Lawrence Erlbaum: Hillsdale, NJ, 1987, pp. 236-240.

    Google Scholar 

  17. C. Gathercole and P. Ross, “Tackling the boolean even n parity problem with genetic programming and limited-error fitness,” in Genetic Programming 1997, Proc. Second Ann. Conf., Stanford University, J. R. Koza K. Deb M. Dorigo D. B. Fogel M. Garzon H. Iba, and R. L. Riolo (eds.), Morgan Kaufmann: Los Altos, CA, 1997, pp. 119-127.

    Google Scholar 

  18. S. G. Handley, “The automatic generations of plans for a mobile robot via genetic programming with automatically defined functions,” Advances in Genetic Programming, K. E. Kinnear, Jr. (ed.), MIT Press: Cambridge, MA, 1994, pp. 391-401.

    Google Scholar 

  19. J. F. Hicklin, Application of the genetic algorithm to automatic program generation, Master Thesis, University of Idaho, Moscow, ID, 1986.

    Google Scholar 

  20. C. A. R. Hoare, “Algorithm 63, Partition, Algorithm 64, Quicksort,” Commun. ACM, vol. 4, p. 321, 1961.

    Google Scholar 

  21. P. Hudak, “Conception, evolution, and application of functional programming languages,” ACM Comput. Surveys, vol. 21(3), pp. 359-411, 1989.

    Google Scholar 

  22. K. E. Kinnear Jr., “Alternatives in automatic function definition: A comparison of performance,” Advances in Genetic Programming, K. E. Kinnear, Jr. (ed.), MIT Press: Cambridge, MA, 1994, pp. 119-141.

    Google Scholar 

  23. J. R. Koza D. Andre F. H. Bennett III, and M. Keane, “Use of automatically defined functions and architecture-altering operations in automated circuit synthesis using genetic programming,” in Genetic Programming 1996, Proc. First Ann. Conf., Stanford University, CA, J. R. Koza D. E. Goldberg D. B. Fogel and R. L. Riolo (eds.), MIT Press: Cambridge, 1996, MA, pp. 132-149.

    Google Scholar 

  24. J. R. Koza, “Hierarchical genetic algorithms operating on populations of computer programs,” in Proc. 11th Int. Conf. Artificial Intell., Detroit, MI, N. S. Sridharan (ed.), vol. I, Morgan Kaufmann: Los Altos, CA, 1989, pp. 768-774.

    Google Scholar 

  25. J. R. Koza, “Genetically breeding populations of computer programs to solve problems in Artificial Intelligence,” in Proc. Second Int. Conf. Tools for AI, IEEE Computer Society Press: Herndon, Virginia, 1990, pp. 819-827.

    Google Scholar 

  26. J. R. Koza, Genetic Programming: On the Programming of Computers by Means of Natural Selection, MIT Press: Cambridge, MA, 1992.

    Google Scholar 

  27. J. R. Koza, Genetic Programming II: Automatic Discovery of Reusable Programs, MIT Press: Cambridge, MA, 1994.

    Google Scholar 

  28. J. R. Koza, “Scalable learning in genetic programming using automatic function definition,” Advances in Genetic Programming, K. E. Kinnear, Jr. (ed.), MIT Press: Cambridge, MA, 1994, pp. 99-117.

    Google Scholar 

  29. J. R. Koza, “Evolving the architecture of a multi-part program in genetic programming using architecture-altering operations,” in Evolutionary Programming IV, Proc. Fourth Ann. Conf. Evolutionary Programming, San Diego, CA, J. R. McDonnell R. G. Reynolds, and D. B. Fogel (eds.), MIT Press: Cambridge, MA, 1995, pp. 695-717.

    Google Scholar 

  30. W. B. Langdon and R. Poli, “Why 'building blocks' don't work on parity problems,” Technical report CSRP-98-17, The University of Birmingham, 1998.

  31. W. B. Langdon, “Scaling of program fitness space,” Evolutionary Comput., vol. 7(4), pp. 339-421, 1999.

    Google Scholar 

  32. N. J. Nillson, Principles of Artificial Intelligence, Morgan Kaufmann: Los Altos, CA, 1980.

    Google Scholar 

  33. R. Poli J. Page, and W. B. Langdon, “Smooth uniform crossover, sub-machine code GP and demes: A recipe for solving high-order boolean parity problem,” in Proc. Genetic and Evolutionary Comput. Conf., Orlando, Florida, W. Banzhaf J. Daida A. Eiben M. Garzon V. Hanavar M. Jakiela, and R. Smith (eds.), Morgan Kaufmann: Los Altos, CA, 1999, pp. 1162-1169.

    Google Scholar 

  34. S. C. Robert D. Howard, and J. R. Koza, “Evolving modules in genetic programming by subtree encapsulation,” in Proc. Fourth European Conf. Genetic Programming, Lake Como, Italy, J. F. Miller M. Tomassini P. L. Lanzi C. Ryan A. G. B. Tettamanzi, and W. B. Langdon (eds.), Springer: Berlin, 2001, pp. 160-175.

    Google Scholar 

  35. J. P. Rosca and D. H. Ballard, “Hierarchical self-organization in genetic programming,” in Proc. Eleventh Int. Conf. Machine Learning, Morgan Kaufmann: Los Altos, CA, 1994, pp. 251-258.

    Google Scholar 

  36. J. P. Rosca and D. H. Ballard, “Discovery of subroutines in genetic programming,” Advances in Genetic Programming II, P. J. Angeline and K. E. Kinnear, Jr. (eds.), MIT Press: Cambridge, MA, 1996, pp. 177-201.

    Google Scholar 

  37. J. P. Rosca, “Genetic programming exploratory power and the discovery of functions,” in Evolutionary Programming IV, Proc. Fourth Ann. Conf. Evolutionary Programming, San Diego, CA, J. R. McDonnell R G. Reynolds and D. B. Fogel (eds.), MIT Press: Cambridge, MA, 1995, pp. 719-736.

    Google Scholar 

  38. J. P. Rosca, Hierarchical Learning with Procedural Abstraction Mechanisms, Ph.D. Thesis, University of Rochester, Rochester, NY.

  39. L. Spector, “Simultaneous evolution of programs and their control structures,” Advances in Genetic Programming II, P. J. Angeline and K. E. Kinnear, Jr. (eds.), MIT Press: Cambridge, MA, 1996, pp. 137-154.

    Google Scholar 

  40. A. M. Turing, “On computable numbers, with an application to the entscheidungs problem,” in Proc. London Math. Soc., Series 2 vol. 42, 1936-1937, pp. 230-265.

    Google Scholar 

  41. P. A. Whigham and R. I. McKay, “Genetic approaches to learning recursive relations,” in Progress in Evolutionary Computation, Yao, X. (ed.), Springer-Verlag: Heidelberg, Germany, 1995, pp. 17-27.

    Google Scholar 

  42. P. A. Whigham, Grammatical Bias for Evolutionary Learning, Ph.D. Thesis, University of New South Wales, Australian Defence Force Academy, 1996.

  43. D. H. Wolpert and W. G. Macready, “No free lunch theorems for optimization,” IEEE Trans. Evolut. Comput., vol. 1(1), pp. 67-82, 1997.

    Google Scholar 

  44. M. L. Wong and K. S. Leung, “Evolving recursive functions for the even-parity problem using genetic programming,” in Advances in Genetic Programming II, P. J. Angeline and K. E. Kinnear, Jr. (eds.), MIT Press: Cambridge, MA, 1996, pp. 222-240.

    Google Scholar 

  45. T. Yuand P. Bentley, “Methods to evolve legal phenotypes,” in Fifth Int. Conf. Parallel Problem Solving from Nature, A. E. Eiben T. Bäck M. Schoenauer, and H.-P. Schwefel (eds.), Springer: Amsterdam, 1998, pp. 280-291.

    Google Scholar 

  46. T. Yuand C. Clack, “PolyGP: a polymorphic genetic programming system in Haskell,” in Genetic Programming 1998, Proc. Third Ann. Conf., University of Wisconsin, Madison, WI, J. R. Koza W. Banzhaf K. Chellapilla K. Deb M. Dorigo D. B. Fogel M. H. Garzon D. E. Goldberg H. Iba, and R. Riolo (eds.), pp. 416-421, Morgan Kaufmann: Los Altos, CA, 1998.

    Google Scholar 

  47. T. Yu and J. Miller, “Neutrality and the evolvability of boolean function landscape, ” in Proc. Fourth European Conf. Genetic Programming, Lake Como, Italy, J. F. Miller M. Tomassini P. L. Lanzi C. Ryan A. G. B. Tettamanzi and W. B. Langdon (eds.), Springer: Berlin, 2001, pp. 204-217.

    Google Scholar 

  48. T. Yu, An Analysis of the Impact of Functional Programming Techniques on Genetic Programming, Ph.D. Thesis, University College London, London, United Kingdom, 1999.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Yu, T. Hierarchical Processing for Evolving Recursive and Modular Programs Using Higher-Order Functions and Lambda Abstraction. Genetic Programming and Evolvable Machines 2, 345–380 (2001). https://doi.org/10.1023/A:1012926821302

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1012926821302

Navigation