skip to main content
10.1145/3194810.3194812acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article
Public Access

Neutrality and epistasis in program space

Published:02 June 2018Publication History

ABSTRACT

Neutral networks in biology often contain diverse solutions with equal fitness, which can be useful when environments (requirements) change over time. In this paper, we present a method for studying neutral networks in software. In these networks, we find multiple solutions to held-out test cases (latent bugs), suggesting that neutral software networks also exhibit relevant diversity. We also observe instances of positive epistasis between random mutations, i.e. interactions that collectively increase fitness. Positive epistasis is rare as a fraction of the total search space but significant as a fraction of the objective space: 9% of the repairs we found to look (and 4.63% across all programs analyzed) were produced by positive interactions between mutations. Further, the majority (62.50%) of unique repairs are instances of positive epistasis.

References

  1. José Aguilar-Rodríguez, Joshua L Payne, and Andreas Wagner. A thousand empirical adaptive landscapes and their navigability. Nature ecology & evolution, 1(2):0045, 2017.Google ScholarGoogle Scholar
  2. Benoit Baudry, Simon Allier, Marcelino Rodriguez-Cancio, and Martin Monperrus. Automatic software diversity in the light of test suites. arXiv preprint arXiv:1509.00144, 2015.Google ScholarGoogle Scholar
  3. Bobby R Bruce, Justyna Petke, and Mark Harman. Reducing energy consumption using genetic improvement. In Proceedings of the 2015 Annual Conference on Genetic and Evolutionary Computation, pages 1327--1334. ACM, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Bobby R Bruce, Justyna Petke, Mark Harman, and Earl T Barr. Approximate oracles and synergy in software energy search spaces. RN, 17(01):01, 2017.Google ScholarGoogle Scholar
  5. Stefano Ciliberti, Olivier C Martin, and Andreas Wagner. Innovation and robustness in complex regulatory gene networks. Proceedings of the National Academy of Sciences, 104(34):13591--13596, 2007.Google ScholarGoogle ScholarCross RefCross Ref
  6. Benjamin Danglot, Philippe Preux, Benoit Baudry, and Martin Monperrus. Correctness attraction: a study of stability of software behavior under runtime perturbation. Empirical Software Engineering, pages 1--34, 2017. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Christian A Duncan, Stephen G Kobourov, and VS Kumar. Optimal constrained graph exploration. ACM Transactions on Algorithms (TALG), 2(3):380--402, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Robert Geist, A. Jefferson Offutt, and Frederick C Harris. Estimation and enhancement of real-time software reliability through mutation analysis. IEEE Transactions on Computers, 41(5):550--558, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Saemundur O. Haraldsson, John R. Woodward, Alexander E. I. Brownlee, Albert V. Smith, and Vilmundur Gudnason. Genetic improvement of runtime and its fitness landscape in a bioinformatics application. In Proceedings of the Genetic and Evolutionary Computation Conference Companion, GECCO '17, pages 1521--1528, New York, NY, USA, 2017. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Yue Jia and Mark Harman. An analysis and survey of the development of mutation testing. IEEE transactions on software engineering, 37(5):649--678, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Martin Kellogg. Combining bug detection and test case generation. In Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2016, pages 1124--1126, New York, NY, USA, 2016. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Motoo Kimura. The neutral theory of molecular evolution. Cambridge University Press, 1983.Google ScholarGoogle ScholarCross RefCross Ref
  13. Motoo Kimura et al. Evolutionary rate at the molecular level. Nature, 217(5129):624--626, 1968.Google ScholarGoogle ScholarCross RefCross Ref
  14. Claire Le Goues, ThanhVu Nguyen, Stephanie Forrest, and Westley Weimer. Genprog: A generic method for automatic software repair. Ieee transactions on software engineering, 38(1):54--72, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Fan Long and Martin Rinard. Prophet: Automatic patch generation via learning from successful patches. 2015.Google ScholarGoogle Scholar
  16. Fan Long and Martin Rinard. Staged program repair with condition synthesis. In Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering, pages 166--178. ACM, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Michael Lynch, Way Sung, Krystalynne Morris, Nicole Coffey, Christian R Landry, Erik B Dopman, W Joseph Dickinson, Kazufusa Okamoto, Shilpa Kulkarni, Daniel L Hartl, et al. A genome-wide view of the spectrum of spontaneous mutations in yeast. Proceedings of the National Academy of Sciences, 105(27):9272--9277, 2008.Google ScholarGoogle ScholarCross RefCross Ref
  18. Matias Martinez and Martin Monperrus. Mining software repair models for reasoning on the search space of automated program fixing. Empirical Software Engineering, 20(1):176--205, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Joanna Masel and Meredith V Trotter. Robustness and evolvability. Trends in Genetics, 26(9):406--414, 2010.Google ScholarGoogle ScholarCross RefCross Ref
  20. Vinicius Paulo L Oliveira, Eduardo Faria de Souza, Claire Le Goues, and Celso G Camilo-Junior. Improved representation and genetic operators for linear genetic programming for automated program repair. Empirical Software Engineering, pages 1--27, 2018.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Alan Owen and Inman Harvey. Adapting particle swarm optimisation for fitness landscapes with neutrality. In Swarm Intelligence Symposium, 2007. SIS 2007. IEEE, pages 258--265. IEEE, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Rebecca J. Parsons, Stephanie Forrest, and Christian Burks. Genetic algorithms, operators, and dna fragment assembly. Machine Learning, 21(1):11--33, Oct 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Jeff H Perkins, Sunghun Kim, Sam Larsen, Saman Amarasinghe, Jonathan Bachrach, Michael Carbin, Carlos Pacheco, Frank Sherwood, Stelios Sidiroglou, Greg Sullivan, et al. Automatically patching errors in deployed software. In Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles, pages 87--102. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Yuhua Qi, Xiaoguang Mao, Yan Lei, Ziying Dai, and Chengsong Wang. Does genetic programming work well on automated program repair? In Computational and Information Sciences (ICCIS), 2013 Fifth International Conference on, pages 1875--1878. IEEE, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Zichao Qi, Fan Long, Sara Achour, and Martin Rinard. An analysis of patch plausibility and correctness for generate-and-validate patch generation systems. In Proceedings of the 2015 International Symposium on Software Testing and Analysis, pages 24--36. ACM, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Christian Reidys, Peter F Stadler, and Peter Schuster. Generic properties of combinatory maps: neutral networks of rna secondary structures. Bulletin of mathematical biology, 59(2):339--397, 1997.Google ScholarGoogle Scholar
  27. Christian M. Reidys and Peter F. Stadler. Neutrality in fitness landscapes. Applied Mathematics and Computation, 117(2):321 -- 350, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. David Schuler and Andreas Zeller. Covering and uncovering equivalent mutants. Software Testing, Verification and Reliability, 23(5):353--374, 2013.Google ScholarGoogle ScholarCross RefCross Ref
  29. Eric Schulte, Jonathan Dorn, Stephen Harding, Stephanie Forrest, and Westley Weimer. Post-compiler software optimization for reducing energy. In ACM SIGARCH Computer Architecture News, volume 42, pages 639--652. ACM, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Eric Schulte, Zachary P Fry, Ethan Fast, Westley Weimer, and Stephanie Forrest. Software mutational robustness. Genetic Programming and Evolvable Machines, 15(3):281--312, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Pitchaya Sitthi-Amorn, Nicholas Modly, Westley Weimer, and Jason Lawrence. Genetic programming for shader simplification. ACM Transactions on Graphics (TOG), 30(6):152, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Nobuhiko Tokuriki and Dan S Tawfik. Chaperonin overexpression promotes genetic variation and enzyme evolution. Nature, 459(7247):668--673, 2009.Google ScholarGoogle ScholarCross RefCross Ref
  33. Nadarajen Veerapen, Fabio Daolio, and Gabriela Ochoa. Modelling genetic improvement landscapes with local optima networks. In Proceedings of the Genetic and Evolutionary Computation Conference Companion, pages 1543--1548. ACM, 2017. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Andreas Wagner. Robustness and evolvability in living systems. Princeton University Press, 2013.Google ScholarGoogle Scholar
  35. Westley Weimer, Zachary P Fry, and Stephanie Forrest. Leveraging program equivalence for adaptive program repair: Models and first results. In Automated Software Engineering (ASE), 2013 IEEE/ACM 28th International Conference on, pages 356--366. IEEE, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Neutrality and epistasis in program space

        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
          GI '18: Proceedings of the 4th International Workshop on Genetic Improvement Workshop
          June 2018
          63 pages
          ISBN:9781450357531
          DOI:10.1145/3194810

          Copyright © 2018 ACM

          Permission to make digital or hard copies of all or part 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 components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 2 June 2018

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Upcoming Conference

          ICSE 2024

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader