Fast Grammar-Based Evolution Using Memoization

  • Martin Luerssen
  • David Powers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6239)


A streamlined, open-source implementation of Shared Grammar Evolution represents candidate solutions as grammars that can share production rules. It offers competitive search performance, while requiring little user-tuning of parameters. Uniquely, the system natively supports the memoization of return values computed during evaluation, which are stored with each rule and also shared between solutions. Significant improvements in evaluation time, up to 3.9-fold in one case, were observed when solving a set of classic GP problems – and even greater improvements can be expected for computation-intensive tasks. Additionally, the rule-based caching of intermediate representations, specifically of the terminal stack, was explored. It was shown to produce significant, although lesser speedups that were partly negated by computational overhead, but may be useful in dynamic and memory-bound tasks otherwise not amenable to memoization.


Evolutionary algorithms genetic programming grammatical evolution shared grammar evolution memoization 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Koza, J.: Genetic programming: on the programming of computers by means of natural selection. MIT Press, Cambridge (1992)zbMATHGoogle Scholar
  2. 2.
    Whigham, P.: Grammatically-based genetic programming. In: Rosca, J. (ed.) Workshop on Genetic Programming: From Theory to Real-World Applications, pp. 33–41. Morgan Kaufmann Publishers, San Mateo (1995)Google Scholar
  3. 3.
    Shan, Y., McKay, R., Baxter, R., Abbass, H., Essam, D., Nguyen, H.: Grammar Model-based Program Evolution. In: IEEE Congress on Evolutionary Computation (CEC 2004), pp. 478–485. IEEE Press, Los Alamitos (2004)Google Scholar
  4. 4.
    Koza, J.: Genetic programming II: automatic discovery of reusable programs. MIT Press, Cambridge (1994)zbMATHGoogle Scholar
  5. 5.
    Hornby, G.: Generative representations for evolutionary design automation. Ph.D. thesis, Brandeis University Dept. of Computer Science (2003)Google Scholar
  6. 6.
    Luerssen, M., Powers, D.: Evolving encapsulated programs as shared grammars. Genetic Programming and Evolvable Machines 9(3), 203–228 (2008)CrossRefGoogle Scholar
  7. 7.
    O’Neill, M., Ryan, C.: Grammatical evolution. IEEE Transactions on Evolutionary Computation 5(4), 349–358 (2001)CrossRefGoogle Scholar
  8. 8.
    Michie, D.: Memo functions and machine learning. Nature 218, 19–22 (1968)CrossRefGoogle Scholar
  9. 9.
    Suwannik, W., Chongstitvatana, P.: On-Line Evolution of Robot Arm Control Programs for Visual-Reaching Tasks using Memoized Function. ECTI Trans. on Electrical Eng., Electronics, and Communications 4(2), 145–155 (2006)Google Scholar
  10. 10.
    Sipper, M., Azaria, Y., Hauptman, A., Shichel, Y.: Designing an Evolutionary Strategizing Machine for Game Playing and Beyond. IEEE Transactions on Systems, Man, and Cybernetics, Part C: Applications and Reviews 37(4), 583–593 (2007)CrossRefGoogle Scholar
  11. 11.
    COGENT: Concurrent Grammar Exploration and Transformation,
  12. 12.
    Boost Pool Library,
  13. 13.
    Deb, K., Pratab, A., Agrawal, S., Meyarivan, T.: A Fast and Elitist Multiobjective Genetic Algorithm: NSGA-II. IEEE Transactions on Evolutionary Computation 6(2), 182–197 (2002)CrossRefGoogle Scholar
  14. 14.
    GEVA: Grammatical Evolution in Java,

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Martin Luerssen
    • 1
  • David Powers
    • 1
  1. 1.Artificial Intelligence Laboratory, School of Computer Science, Engineering and MathematicsFlinders UniversityAdelaideAustralia

Personalised recommendations