Kyle Harrington

Evolution and artificial life · 2011

What’s in an Evolved Name? The Evolution of Modularity via Tag-Based Reference

Lee Spector, Kyle Harrington, Brian Martin, Thomas Helmuth

Genetic Programming Theory and Practice IX

doi:10.1007/978-1-4614-1770-5_1pdf

Abstract

Programming languages provide a variety of mechanisms to associate names with values, and these mechanisms play a central role in programming practice. For example, they allow multiple references to the same storage location or function in different parts of a complex program. By contrast, the representations used in current genetic programming systems provide few if any naming mechanisms, and it is therefore generally not possible for evolved programs to use names in sophisticated ways. In this chapter we describe a new approach to names in genetic programming that is based on Holland’s concept of tags. We demonstrate the use of tag-based names, we describe some of the ways in which they may help to extend the power and reach of genetic programming systems, and we look at the ways that tag-based names are actually used in an evolved program that solves a robot navigation problem.