skip to main content
10.1145/2908961.2926988acmconferencesArticle/Chapter ViewAbstractPublication PagesgeccoConference Proceedingsconference-collections
tutorial

Expressive Genetic Programming: Concepts and Applications

Published:20 July 2016Publication History

ABSTRACT

The language in which evolving programs are expressed can have significant impacts on the dynamics and problem-solving capabilities of a genetic programming system. In GP these impacts are driven by far more than the absolute computational power of the languages used; just because a computation is theoretically possible in a language, it doesn't mean it's readily discoverable or leveraged by evolution. Highly expressive languages can facilitate the evolution of programs for any computable function using, as appropriate, multiple data types, evolved subroutines, evolved control structures, evolved data structures, and evolved modular program and data architectures. In some cases expressive languages can even support the evolution of programs that express methods for their own reproduction and variation (and hence for the evolution of their offspring).

This tutorial will present a range of approaches that have been taken for evolving programs in expressive programming languages. We will then provide a detailed introduction to the Push programming language, which was designed specifically for expressiveness in genetic programming systems. Push programs are syntactically unconstrained but can nonetheless make use of multiple data types and express arbitrary control structures, potentially supporting the evolution of complex, modular programs in a particularly simple and flexible way.

Interleaved with our description of the Push language will be demonstrations of the use of analytical tools such as graph databases and program diff/merge tools to explore ways in which evolved Push programs are actually taking advantage of the language's expressive features. We will illustrate, for example, the effective use of multiple types and type-appropriate functions, the evolution and modification of code blocks and looping/recursive constructs, and the ability of Push programs to handle multiple, potentially related tasks.

We will conclude with a brief review of over a decade of Push-based research, including the production of human-competitive results, along with recent enhancements to Push that are intended to support the evolution of complex and robust software systems.

References

  1. The Push language website: http://pushlanguage.orgGoogle ScholarGoogle Scholar
  2. Helmuth, T., Spector, L., McPhee, N. F., and S. Shanabrook. 2016. Linear Genomes for Structured Programs. In Genetic Programming Theory and Practice XIII. New York: Springer. In preparation.Google ScholarGoogle Scholar
  3. Spector, L., McPhee, N. F., Helmuth, T., Casale. M. M., and J. Oks. 2016. Evolution Evolves with Autoconstruction. In Companion Publication of the 2016 Genetic and Evolutionary Computation Conference. ACM Press. In press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Helmuth, T., and L. Spector. 2015. General Program Synthesis Benchmark Suite. In Proceedings of the 2015 Genetic and Evolutionary Computation Conference, GECCO'15. ACM Press. pp. 1039--1046. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. La Cava, W., and L. Spector. 2015. Inheritable Epigenetics in Genetic Programming. In Genetic Programming Theory and Practice XII. New York: Springer. pp. 37--5Google ScholarGoogle Scholar
  6. Helmuth, T., L. Spector, and J. Matheson. 2015. Solving Uncompromising Problems with Lexicase Selection. In IEEE Transactions on Evolutionary Computation 19(5), pp. 630--643.Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Helmuth, T., and L. Spector. 2014. Word Count as a Traditional Programming Benchmark Problem for Genetic Programming. In Proceedings of the 2014 Genetic and Evolutionary Computation Conference, GECCO'14. ACM Press. pp. 919--926. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Spector, L., and T. Helmuth. 2014. Effective Simplification of Evolved Push Programs Using a Simple, Stochastic Hill-climber. In Companion Publication of the 2014 Genetic and Evolutionary Computation Conference. ACM Press. pp. 147--148. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Zhan, H. 2014. A quantitative analysis of the simplification genetic operator. In Companion Publication of the 2014 Genetic and Evolutionary Computation Conference. ACM Press. pp. 1077--1080. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Spector, L., K. Harrington, and T. Helmuth. 2012.Tag-based Modularity in Tree-based Genetic Programming. In Proceedings of the Genetic and Evolutionary Computation Conference, GECCO-2012. ACM Press. pp. 815--822. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Spector, L., K. Harrington, B. Martin, and T. Helmuth. 2011. What's in an Evolved Name? The Evolution of Modularity via Tag-Based Reference. In Genetic Programming Theory and Practice IX. New York: Springer. pp. 1--16.Google ScholarGoogle Scholar
  12. Spector, L. 2010. Towards Practical Autoconstructive Evolution: Self-Evolution of Problem-Solving Genetic Programming Systems. In Genetic Programming Theory and Practice VIII, R. L. Riolo, T. McConaghy, and E. Vladislavleva, eds. Springer. pp. 17--33.Google ScholarGoogle Scholar
  13. Spector, L., D. M. Clark, I. Lindsay, B. Barr, and J. Klein. 2008. Genetic Programming for Finite Algebras. In Proceedings of the Genetic and Evolutionary Computation Conference, GECCO-2008. ACM Press. pp. 1291--1298. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Spector, L., J. Klein, and M. Keijzer. 2005. The Push3 Execution Stack and the Evolution of Control. In Proceedings of the Genetic and Evolutionary Computation Conference, GECCO-2005. Springer-Verlag. pp. 1689--1696. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Spector, L. 2004. Automatic Quantum Computer Programming: A Genetic Programming Approach. Boston, MA: Kluwer Academic Publishers. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Spector, L., and A. Robinson. 2002. Genetic Programming and Autoconstructive Evolution with the Push Programming Language. In Genetic Programming and Evolvable Machines, Vol. 3, No. 1, pp. 7--40. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Spector, L. 2001. Autoconstructive Evolution: Push, PushGP, and Pushpop. In Proceedings of the Genetic and Evolutionary Computation Conference, GECCO-2001. Morgan Kaufmann Publishers. pp. 137--146.Google ScholarGoogle Scholar
  18. Robinson, A. 2001. Genetic Programming: Theory, Implementation, and the Evolution of Unconstrained Solutions. Hampshire College Division III (senior) thesis.Google ScholarGoogle Scholar

Index Terms

  1. Expressive Genetic Programming: Concepts and Applications

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        GECCO '16 Companion: Proceedings of the 2016 on Genetic and Evolutionary Computation Conference Companion
        July 2016
        1510 pages
        ISBN:9781450343237
        DOI:10.1145/2908961

        Copyright © 2016 Owner/Author

        Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 20 July 2016

        Check for updates

        Qualifiers

        • tutorial

        Acceptance Rates

        GECCO '16 Companion Paper Acceptance Rate137of381submissions,36%Overall Acceptance Rate1,669of4,410submissions,38%

        Upcoming Conference

        GECCO '24
        Genetic and Evolutionary Computation Conference
        July 14 - 18, 2024
        Melbourne , VIC , Australia

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader