Fast Grammar-Based Evolution Using Memoization
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.
KeywordsEvolutionary algorithms genetic programming grammatical evolution shared grammar evolution memoization
Unable to display preview. Download preview PDF.
- 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.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
- 5.Hornby, G.: Generative representations for evolutionary design automation. Ph.D. thesis, Brandeis University Dept. of Computer Science (2003)Google Scholar
- 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
- 11.COGENT: Concurrent Grammar Exploration and Transformation, http://code.google.com/p/cogent
- 12.Boost Pool Library, http://www.boost.org/doc/libs
- 14.GEVA: Grammatical Evolution in Java, http://ncra.ucd.ie/Site/GEVA.html