Our long term goal is to develop an open-ended reflective software architecture to support open-ended evolution. Here we describe a preliminary experiment using reflection to make simple programs evolved via Grammatical Evolution robust to mutations that result in coding errors.
We use reflection in the domain of grammatical evolution (GE) to achieve a novel means of robustness by autonomously repairing damaged programs, improving continuity in the search and allowing programs to be evolved effectively using soft grammars. In most implementations of GE, individuals whose programs encounter errors are assigned the worst possible fitness; using the techniques described here, these individuals may be allowed to continue evolving.
We describe two different approaches to achieving robustness through reflection, and evaluate their effectiveness through a series of experiments carried out on benchmark regression problems. Results demonstrate a statistically significant improvement on the fitness of the best individual found during evolution.
@inproceedings(SS-ALife14b, author = "Christopher Timperley and Susan Stepney", title = "Reflective Grammatical Evolution", pages = "71-78", doi = "10.7551/978-0-262-32621-6-ch013", crossref = "ALife14" ) @proceedings(ALife14, title = "ALife XIV, New York, NY, USA, July 2014", booktitle = "ALife XIV, New York, NY, USA, July 2014", publisher = "MIT Press", year = 2014 )