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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Angeline, Peter J. and Pollack, Jordan (1993). Evolutionary module acquisition. In Fogel, D. and Atmar,W., editors, Proceedings of the Second Annual Conference on Evolutionary Programming, pages 154–163, La Jolla, CA, USA.
Bruce, Wilker Shane (1997). The lawnmower problem revisited: Stack-based genetic programming and automatically defined functions. In Koza, John R. et al., editors, Genetic Programming 1997: Proceedings of the Second AnnualConference, pages 52–57, StanfordUniversity, CA,USA.MorganKaufmann.
Curry, H.B. and Feys, R. (1958). Combinatory Logic, 1.
Hemberg, Erik, Gilligan, Conor, O’Neill, Michael, and Brabazon, Anthony (2007). A grammatical genetic programming approach to modularity in genetic algorithms. In Ebner, Marc et al., editors, Proceedings of the 10th European Conference on Genetic Programming, volume 4445 of Lecture Notes in Computer Science, pages 1–11, Valencia, Spain. Springer.
Holland, J. (1993). The effect of labels (tags) on social interactions. Technical Report Working Paper 93-10-064, Santa Fe Institute, Santa Fe, NM.
Holland, J. H. (1995). Hidden Order: How Adaptation Builds Complexity. Perseus Books.
Hornby, G.S. (2007). Modularity, reuse, and hierarchy: measuring complexity by measuring structure and organization. Complexity, 13(2):50–61.
Jonyer, Istvan and Himes, Akiko (2006). Improving modularity in genetic programming using graph-based data mining. In Sutcliffe, Geoff C. J. and Goebel,RandyG., editors,Proceedings of theNineteenth InternationalFlorida Artificial Intelligence Research Society Conference, pages 556–561, Melbourne Beach, Florida, USA. American Association for Artificial Intelligence.
Kinnear, Jr., Kenneth E. (1994). Alternatives in automatic function definition: A comparison of performance. In Kinnear, Jr., Kenneth E., editor, Advances in Genetic Programming, chapter 6, pages 119–141. MIT Press.
Koza, J. (1990). Genetic programming: A paradigm for genetically breeding populations of computer programs to solve problems.TechnicalReportSTANCS- 90-1314, Dept. of Computer Science, Stanford University.
Koza, John R. (1992). Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, Cambridge, MA, USA.
Koza, JohnR. (1994).GeneticProgramming II:AutomaticDiscovery ofReusable Programs. MIT Press, Cambridge Massachusetts.
Koza, John R., Andre, David, Bennett III, Forrest H, and Keane, Martin (1999). Genetic Programming 3:Darwinian Invention and Problem Solving.Morgan Kaufman. Kripke, S. A. (1972). Naming and Necessity. Harvard University Press.
Li,Xin, Zhou, Chi,Xiao,Weimin, and Nelson, Peter C. (2005). Direct evolution of hierarchical solutions with self-emergent substructures. In The Fourth International Conference onMachine Learning and Applications (ICMLA’05), pages 337–342, Los Angeles, California. IEEE press.
Racine, Alain, Schoenauer, Marc, and Dague, Philippe (1998). A dynamic lattice to evolve hierarchically shared subroutines: DL’GP. In Banzhaf, Wolfgang, Poli, Riccardo, Schoenauer, Marc, and Fogarty, Terence C., editors, Proceedings of the First European Workshop on Genetic Programming, volume 1391 of LNCS, pages 220–232, Paris. Springer-Verlag.
Ray, Thomas S. (1991). Is it alive or is it GA? In Belew, Richard K. and Booker, Lashon B., editors, Proceedings of the Fourth International Conference on Genetic Algorithms (ICGA’91), pages 527–534, SanMateo, California.Morgan Kaufmann Publishers.
Riolo, R. L., Cohen, M. D., and Axelrod, R. (2001). Evolution of cooperation without reciprocity. Nature, 414:441–443.
Roberts, Simon C., Howard, Daniel, and Koza, John R. (2001). Evolving modules in genetic programming by subtree encapsulation. In Miller, Julian F. et al., editors, Genetic Programming, Proceedings of EuroGP’2001, volume 2038 of LNCS, pages 160–175, Lake Como, Italy. Springer-Verlag.
Sch¨onfinkel, M. (1924). ¨Uber die bausteine der mathematischen logik. Mathematische Annalen, 92:307–316.
Shirakawa, Shinichi and Nagao, Tomoharu (2009). Graph structured program evolution with automatically defined nodes. In Raidl, Guenther et al., editors, GECCO ’09: Proceedings of the 11th Annual conference on Genetic and evolutionary computation, pages 1107–1114, Montreal. ACM.
Simon, H.A. (1969). The architecture of complexity. In Simon, Herbert A., editor, The Sciences of the Artificial, pages 84–118. The MIT Press.
Soule, T. (2011). Evolutionary dynamics of tag mediated cooperation with multilevel selection. Evolutionary Computation, 19(1):25–43.
Spector, Lee (1996). Simultaneous evolution of programs and their control structures. In Angeline, Peter J. and Kinnear, Jr., K. E., editors, Advances in Genetic Programming 2, chapter 7, pages 137–154. MIT Press, Cambridge, MA, USA.
Spector, Lee (2001). Autoconstructive evolution: Push, pushGP, and pushpop. In Spector, Lee et al., editors, Proceedings of the Genetic and Evolutionary Computation Conference (GECCO-2001), pages 137–146, San Francisco, California, USA. Morgan Kaufmann.
Spector, Lee (2004). Automatic Quantum Computer Programming: A Genetic Programming Approach, volume 7 of Genetic Programming. Kluwer Academic Publishers, Boston/Dordrecht/New York/London.
Spector, Lee, Clark, David M., Lindsay, Ian, Barr, Bradford, and Klein, Jon (2008). Genetic programming for finite algebras. In Keijzer, Maarten et al., editors, GECCO ’08: Proceedings of the 10th annual conference on Genetic and evolutionary computation, pages 1291–1298, Atlanta, GA, USA. ACM.
Spector, Lee and Klein, Jon (2006). Multidimensional tags, cooperative populations, and genetic programming. In Riolo, Rick L., Soule, Terence, and Worzel, Bill, editors, Genetic Programming Theory and Practice IV, volume 5 ofGenetic andEvolutionaryComputation, chapter 15, pages –. Springer, Ann Arbor.
Spector, Lee, Klein, Jon, and Keijzer, Maarten (2005). The push3 execution stack and the evolution of control. In Beyer, Hans-Georg et al., editors, GECCO 2005: Proceedings of the 2005 conference on Genetic and evolutionary computation, volume 2, pages 1689–1696, Washington DC, USA. ACM Press.
Spector, Lee, Martin, Brian, Harrington, Kyle, and Helmuth, Thomas (2011). Tag-based modules in genetic programming. In Proceedings of the Genetic and Evolutionary Computation Conference (GECCO-2011). To appear.
Spector, Lee, Perry, Chris, Klein, Jon, and Keijzer, Maarten (2004). Push 3.0 programming language description. Technical Report HC-CSTR-2004-02, School of Cognitive Science, Hampshire College, USA.
Spector, Lee and Robinson, Alan (2002a). Genetic programming and autoconstructive evolution with the push programming language. Genetic Programming and Evolvable Machines, 3(1):7–40.
Spector, Lee and Robinson, Alan (2002b). Multi-type, self-adaptive genetic programming as an agent creation tool. In Barry, AlwynM., editor, GECCO 2002: Proceedings of the Bird of a Feather Workshops, Genetic and Evolutionary Computation Conference, pages 73–80, New York. AAAI.
Teller,Astro (1994).The evolution ofmentalmodels. InKinnear,KennethE., editor, Advances in Genetic Programming, Complex Adaptive Systems, pages 199–220, Cambridge. MIT Press.
Walker, James Alfred and Miller, Julian Francis (2008). The automatic acquisition, evolution and reuse ofmodules in cartesian genetic programming. IEEE Transactions on Evolutionary Computation, 12(4):397–417.
Wijesinghe, Gayan and Ciesielski, Vic (2010). Evolving programs with parameters and loops. In IEEE Congress on Evolutionary Computation (CEC 2010), Barcelona, Spain. IEEE Press.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer Science+Business Media, LLC
About this chapter
Cite this chapter
Spector, L., Harrington, K., Martin, B., Helmuth, T. (2011). What’s in an Evolved Name? The Evolution of Modularity via Tag-Based Reference. In: Riolo, R., Vladislavleva, E., Moore, J. (eds) Genetic Programming Theory and Practice IX. Genetic and Evolutionary Computation. Springer, New York, NY. https://doi.org/10.1007/978-1-4614-1770-5_1
Download citation
DOI: https://doi.org/10.1007/978-1-4614-1770-5_1
Published:
Publisher Name: Springer, New York, NY
Print ISBN: 978-1-4614-1769-9
Online ISBN: 978-1-4614-1770-5
eBook Packages: Computer ScienceComputer Science (R0)