Skip to main content

A Detailed Analysis of a PushGP Run

  • Chapter
  • First Online:
Genetic Programming Theory and Practice XIV

Abstract

In evolutionary computation we potentially have the ability to save and analyze every detail in an run. This data is often thrown away, however, in favor of focusing on the final outcomes, typically captured and presented in the form of summary statistics and performance plots. Here we use graph database tools to store every parent–child relationship in a single genetic programming run, and examine the key ancestries in detail, tracing back from an solution to see how it was evolved over the course of 20 generations. To visualize this genetic programming run, the ancestry graph is extracted, running from the solution(s) in the final generation up to their ancestors in the initial random population. The key instructions in the solution are also identified, and a genetic ancestry graph is constructed, a subgraph of the ancestry graph containing only those individuals that contributed genetic information (or instructions) to the solution. These visualizations and our ability to trace these key instructions throughout the run allow us to identify general inheritance patterns and key evolutionary moments in this run.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 54.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Clojush: https://github.com/lspector/Clojush.

  2. 2.

    http://pushlanguage.org/.

  3. 3.

    http://thinkaurelius.github.io/titan/ and https://tinkerpop.apache.org/.

  4. 4.

    http://www.graphviz.org/.

  5. 5.

    This choice was somewhat arbitrary, but most of the 13 successful programs simplify down to the same nine instruction program, so the analysis would have been the same in most cases even if we’d worked back from a different successful individual.

  6. 6.

    Instructions were treated as atomic symbols when computing the Damerau–Levenshtein distances; swapping a exec_if with a print_string would only add a distance of 1.

  7. 7.

    Individual 0:41 isn’t shown in Fig. 5.2 since it didn’t contribute any of the nine key instructions to 1:590 or, ultimately, 20:435.

  8. 8.

    These self-crosses are likely a result of hyperselection events due to lexicase selection [8].

References

  1. Burlacu, B., Affenzeller, M., Kommenda, M., Winkler, S., Kronberger, G.: Visualization of genetic lineages and inheritance information in genetic programming. In: GECCO ’13 Companion: Proceeding of the Fifteenth Annual Conference Companion on Genetic and Evolutionary Computation Conference Companion, pp. 1351–1358. ACM, Amsterdam (2013)

    Google Scholar 

  2. Burlacu, B., Kommenda, M., Affenzeller, M.: Building blocks identification based on subtree sample counts for genetic programming. In: Asia-Pacific Conference on Computer Aided System Engineering (APCASE), 2015, pp. 152–157. IEEE, Piscataway (2015)

    Google Scholar 

  3. Burlacu, B., Affenzeller, M., Winkler, S., Kommenda, M., Kronberger, G.: Methods for genealogy and building block analysis in genetic programming. In: Computational Intelligence and Efficiency in Engineering Systems. Studies in Computational Intelligence, vol. 595, pp. 61–74. Springer, Cham (2015)

    Google Scholar 

  4. Burlacu, B., Affenzeller, M., Kommenda, M.: On the effectiveness of genetic operations in symbolic regression. In: Computer Aided Systems Theory–EUROCAST 2015, pp. 367–374. Springer, Cham (2015)

    Chapter  Google Scholar 

  5. Donatucci, D., Dramdahl, M.K., McPhee, N.F.: Analysis of genetic programming ancestry using a graph database. In: Proceedings of the Midwest Instruction and Computing Symposium (2014). http://goo.gl/RZXY2U

  6. Helmuth, T., Spector, L.: General program synthesis benchmark suite. In: Silva, S., Esparcia-Alcazar, A.I., Lopez-Ibanez, M., Mostaghim, S., Timmis, J., Zarges, C., Correia, L., Soule, T., Giacobini, M., Urbanowicz, R., Akimoto, Y., Glasmachers, T., Fernandez de Vega, F., Hoover, A., Larranaga, P., Soto, M., Cotta, C., Pereira, F.B., Handl, J., Koutnik, J., Gaspar-Cunha, A., Trautmann, H., Mouret, J.B., Risi, S., Costa, E., Schuetze, O., Krawiec, K., Moraglio, A., Miller, J.F., Widera, P., Cagnoni, S., Merelo, J., Hart, E., Trujillo, L., Kessentini, M., Ochoa, G., Chicano, F., Doerr, C. (eds.) GECCO ’15: Proceedings of the 2015 Annual Conference on Genetic and Evolutionary Computation, pp. 1039–1046. ACM, Madrid (2015). https://doi.org/10.1145/2739480.2754769. http://doi.acm.org/10.1145/2739480.2754769

  7. Helmuth, T., Spector, L., McPhee, N.F., Shanabrook, S.: Plush: linear genomes for pushgp. In: Genetic Programming Theory and Practice XIV. Genetic and Evolutionary Computation. Springer, Ann Arbor (2016)

    Google Scholar 

  8. Helmuth, T., McPhee, N.F., Spector, L.: The impact of hyperselection on lexicase selection. In: GECCO ’16: Proceedings of the 2016 Genetic and Evolutionary Computation Conference (2016)

    Google Scholar 

  9. Kuber, K., Card, S.W., Mehrotra, K.G., Mohan, C.K.: Ancestral networks in evolutionary algorithms. In: Proceedings of the 2014 Conference Companion on Genetic and Evolutionary Computation Companion, pp. 115–116. ACM, New York (2014)

    Google Scholar 

  10. McPhee, N.F., Donatucci, D., Helmuth, T.: Using graph databases to explore genetic programming run dynamics. In: Riolo, R., Worzel, W.P., Kotanchek, M., Kordon, A. (eds.) Genetic Programming Theory and Practice XIII, Genetic and Evolutionary Computation. Springer, Ann Arbor (2015). https://doi.org/10.1007/978-3-319-34223-8. http://www.springer.com/us/book/9783319342214

    MATH  Google Scholar 

  11. Spector, L.: Assessment of problem modality by differential performance of lexicase selection in genetic programming: a preliminary report. In: McClymont, K., Keedwell, E. (eds.) 1st Workshop on Understanding Problems (GECCO-UP), pp. 401–408. ACM, Philadelphia (2012). https://doi.org/10.1145/2330784.2330846. http://hampshire.edu/lspector/pubs/wk09p4-spector.pdf

  12. Spector, L., Robinson, A.: Genetic programming and autoconstructive evolution with the push programming language. Genet. Program Evolvable Mach. 3(1), 7–40 (2002). https://doi.org/10.1023/A:1014538503543. http://hampshire.edu/lspector/pubs/push-gpem-final.pdf

    Article  Google Scholar 

  13. Spector, L., Helmuth, T.: Uniform linear transformation with repair and alternation in genetic programming. In: Riolo, R., Moore, J.H., Kotanchek, M. (eds.) Genetic Programming Theory and Practice XI. Genetic and Evolutionary Computation, chap. 8, pp. 137–153. Springer, Ann Arbor (2013). https://doi.org/10.1007/978-1-4939-0375-7_8

    Google Scholar 

  14. Spector, L., Helmuth, T.: Effective simplification of evolved push programs using a simple, stochastic hill-climber. In: Igel, C., Arnold, D.V., Gagne, C., Popovici, E., Auger, A., Bacardit, J., Brockhoff, D., Cagnoni, S., Deb, K., Doerr, B., Foster, J., Glasmachers, T., Hart, E., Heywood, M.I., Iba, H., Jacob, C., Jansen, T., Jin, Y., Kessentini, M., Knowles, J.D., Langdon, W.B., Larranaga, P., Luke, S., Luque, G., McCall, J.A.W., Montes de Oca, M.A., Motsinger-Reif, A., Ong, Y.S., Palmer, M., Parsopoulos, K.E., Raidl, G., Risi, S., Ruhe, G., Schaul, T., Schmickl, T., Sendhoff, B., Stanley, K.O., Stuetzle, T., Thierens, D., Togelius, J., Witt, C., Zarges, C. (eds.) GECCO Comp ’14: Proceedings of the 2014 Conference Companion on Genetic and Evolutionary Computation Companion, pp. 147–148. ACM, Vancouver (2014). https://doi.org/10.1145/2598394.2598414. http://doi.acm.org/10.1145/2598394.2598414

  15. Spector, L., Klein, J., Keijzer, M.: The push3 execution stack and the evolution of control. In: Beyer, H.G., O’Reilly, U.M., Arnold, D.V., Banzhaf, W., Blum, C., Bonabeau, E.W., Cantu-Paz, E., Dasgupta, D., Deb, K., Foster, J.A., de Jong, E.D., Lipson, H., Llora, X., Mancoridis, S., Pelikan, M., Raidl, G.R., Soule, T., Tyrrell, A.M., Watson, J.P., Zitzler, E. (eds.) GECCO 2005: Proceedings of the 2005 Conference on Genetic and Evolutionary Computation, vol. 2, pp. 1689–1696. ACM Press, Washington DC (2005). https://doi.org/10.1145/1068009.1068292. http://www.cs.bham.ac.uk/~wbl/biblio/gecco2005/docs/p1689.pdf

Download references

Acknowledgements

Emma Sax, Laverne Schrock, and Leonid Scott helped with the initial computation and analyses of the differences between the parents and children discussed here. William Tozier provided a host of ideas and feedback all through the process, as did numerous members of the Hampshire College Computational Intelligence lab.

We are very grateful to all the participants in the 2016 Genetic Programming Theory and Practice (GPTP) workshop for their enthusiasm, ideas, and support. In particular we’d like to thank William Tozier, Stephan Winkler, and Wolfgang Banzhaf for their feedback on an earlier draft. Finally, thanks to the GPTP organizers; without their hard work none of those other valuable conversations would have occurred.

This material is based upon work supported by the National Science Foundation under Grants No. 1129139 and 1331283. Any opinions, findings, and conclusions or recommendations expressed in this publication are those of the authors and do not necessarily reflect the views of the National Science Foundation.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Nicholas Freitag McPhee .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

McPhee, N.F., Finzel, M.D., Casale, M.M., Helmuth, T., Spector, L. (2018). A Detailed Analysis of a PushGP Run. In: Riolo, R., Worzel, B., Goldman, B., Tozier, B. (eds) Genetic Programming Theory and Practice XIV. Genetic and Evolutionary Computation. Springer, Cham. https://doi.org/10.1007/978-3-319-97088-2_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-97088-2_5

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-97087-5

  • Online ISBN: 978-3-319-97088-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics