Abstract
Genetic Programming has advanced the state of the art in the field of software synthesis. However, it has still not been able to produce some of the more complex programs routinely written by humans. One of the heuristics human programmers use to build complex software is the organization of code into reusable modules. Ever since the introduction of the concept of Automatically Defined Functions (ADFs) by John Koza in the 1990s, the genetic programming community has also expressed the need to evolve modular programs, but despite this interest and several subsequent innovations, the goal of evolving large-scale software built on reusable modules has not yet been achieved. In this chapter, we first discuss two modularity metrics—Reuse and Repetition—and describe the procedure for calculating them from program code and corresponding execution traces. We then introduce the concept of design features, which can be used alongside error measures to guide evolution. We also demonstrate the use of modularity design features in parent selection.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
References
Clune, J., Mouret, J. B., & Lipson, H. (2013). The evolutionary origins of modularity. Proceedings of the Royal Society B: Biological Sciences, 280(1755), 20122863.
Helmuth, T., & Spector, L. (2015, July). General program synthesis benchmark suite. In Proceedings of the 2015 Annual Conference on Genetic and Evolutionary Computation (pp. 1039–1046). ACM.
Koza, J. R. (1992). Genetic programming: on the programming of computers by means of natural selection (Vol. 1). MIT press.
Koza, J. R. (1994). Architecture-altering operations for evolving the architecture of a multi-part program in genetic programming.
Angeline, P. J., & Pollack, J. (1993, February). Evolutionary module acquisition. In Proceedings of the second annual conference on evolutionary programming (pp. 154–163).
Spector, L. (1995). Evolving Control Structures with Automatically Defined Macros. Submitted to the 1995 AAAI Fall Symposium on Genetic Programming.
Banzhaf, W., Banscherus, D., & Dittrich, P. (1999). Hierarchical genetic programming using local modules. Secretary of the SFB 531.
Dhama, H. (1995). Quantitative models of cohesion and coupling in software. Journal of Systems and Software, 29(1), 65–74.
Saini, A. K., & Spector, L. (2019). Modularity Metrics for Genetic Programming. In Genetic and Evolutionary Computation Conference Companion (GECCO 2019 Companion), July 13–17, 2019, Prague, Czech Republic. ACM, New York, NY, USA, 4 pages. https://doi.org/10.1145/3319619.3326908
Callebaut, W., Rasskin-Gutman, D., & Simon, H. A. (Eds.). (2005). Modularity: understanding the development and evolution of natural complex systems. MIT press.
O’Neill, M., Vanneschi, L., Gustafson, S., & Banzhaf, W. (2010). Open issues in genetic programming. Genetic Programming and Evolvable Machines, 11(3–4), 339–363.
Gerules, G., Janikow, C. (2016, July). A survey of modularity in genetic programming. In 2016 IEEE Congress on Evolutionary Computation (CEC) (pp. 5034–5043). IEEE.
Lee Spector. 2001. Autoconstructive evolution: Push, pushGP, and pushpop. In Proceedings of the Genetic and Evolutionary Computation Conference (GECCO- 2001), Vol. 137.
Spector, L., Martin, B., Harrington, K., Helmuth, T. (2011, July). Tag-based modules in genetic programming. In Proceedings of the 13th annual conference on Genetic and evolutionary computation (pp. 1419–1426). ACM.
Helmuth, T., Spector, L., & Matheson, J. (2015). Solving uncompromising problems with lexicase selection. IEEE Transactions on Evolutionary Computation, 19(5), 630–643.
La Cava, W., Spector, L., & Danai, K. (2016, July). Epsilon-lexicase selection for regression. In Proceedings of the Genetic and Evolutionary Computation Conference 2016 (pp. 741–748). ACM.
Lalejini, A., Ofria, C. (2018, July). Evolving event-driven programs with SignalGP. In Proceedings of the Genetic and Evolutionary Computation Conference (pp. 1135–1142). ACM
Krzysztof Krawiec and Bartosz Wieloch. 2009. Functional modularity for genetic programming. In Proceedings of the 11th Annual conference on Genetic and evolutionary computation. ACM, 995–1002.
Newman, M. E. (2006). Modularity and community structure in networks. Proceedings of the national academy of sciences, 103(23), 8577–8582.
Qin, Z., McKay, R., & Gedeon, T. (2018). Why don’t the modules dominate-Investigating the Structure of a Well-Known Modularity-Inducing Problem Domain. arXiv preprint arXiv:1807.05976.
Helmuth, T., McPhee, N. F., & Spector, L. (2018, July). Program synthesis using uniform mutation by addition and deletion. In Proceedings of the Genetic and Evolutionary Computation Conference (pp. 1127–1134). ACM.
Helmuth, T., McPhee, N. F., Pantridge, E., & Spector, L. (2017, July). Improving generalization of evolved programs through automatic simplification. In Proceedings of the Genetic and Evolutionary Computation Conference (pp. 937–944). ACM.
Zhan, H. (2014, July). A quantitative analysis of the simplification genetic operator. In Proceedings of the Companion Publication of the 2014 Annual Conference on Genetic and Evolutionary Computation (pp. 1077–1080). ACM.
Acknowledgements
We would like to thank other members of Hampshire College Institute for Computational Intelligence for their valuable inputs.
This material is based upon work supported by the National Science Foundation under Grant No. 1617087. 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
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Saini, A.K., Spector, L. (2020). Using Modularity Metrics as Design Features to Guide Evolution in Genetic Programming. In: Banzhaf, W., Goodman, E., Sheneman, L., Trujillo, L., Worzel, B. (eds) Genetic Programming Theory and Practice XVII. Genetic and Evolutionary Computation. Springer, Cham. https://doi.org/10.1007/978-3-030-39958-0_9
Download citation
DOI: https://doi.org/10.1007/978-3-030-39958-0_9
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-39957-3
Online ISBN: 978-3-030-39958-0
eBook Packages: Computer ScienceComputer Science (R0)