Neutral Networks of Real-World Programs and their Application to Automated Software Evolution

Created by W.Langdon from gp-bibliography.bib Revision:1.4496

  author =       "Eric Schulte",
  title =        "Neutral Networks of Real-World Programs and their
                 Application to Automated Software Evolution",
  school =       "University of New Mexico",
  year =         "2014",
  address =      "Albuquerque, USA",
  month =        jul,
  keywords =     "genetic algorithms, genetic programming",
  URL =          "",
  URL =          "",
  URL =          "",
  size =         "168 pages",
  abstract =     "The existing software development ecosystem is the
                 product of evolutionary forces, and consequently
                 real-world software is amenable to improvement through
                 automated evolutionary techniques. This dissertation
                 presents empirical evidence that software is inherently
                 robust to small randomised program transformations, or
                 mutations. Simple and general mutation operations are
                 demonstrated that can be applied to software source
                 code, compiled assembler code, or directly to binary
                 executables. These mutations often generate variants of
                 working programs that differ significantly from the
                 original, yet remain fully functional. Applying
                 successive mutations to the same software program
                 uncovers large neutral networks of fully functional
                 variants of real-world software projects.

                 These properties of mutational robustness and the
                 corresponding neutral networks have been studied
                 extensively in biology and are believed to be related
                 to the capacity for unsupervised evolution and
                 adaptation. As in biological systems, mutational
                 robustness and neutral networks in software systems
                 enable automated evolution.

                 The dissertation presents several applications that
                 leverage software neutral networks to automate common
                 software development and maintenance tasks. Neutral
                 networks are explored to generate diverse
                 implementations of software for improving runtime
                 security and for proactively repairing latent bugs.
                 Next, a technique is introduced for automatically
                 repairing bugs in the assembler and executables
                 compiled from off-the-shelf software. As demonstration,
                 a proprietary executable is manipulated to patch
                 security vulnerabilities without access to source code
                 or any aid from the software vendor. Finally, software
                 neutral networks are leveraged to optimize complex
                 nonfunctional runtime properties. This optimisation
                 technique is used to reduce the energy consumption of
                 the popular PARSEC benchmark applications by 20percent
                 as compared to the best available public domain
                 compiler optimisations.

                 The applications presented herein apply evolutionary
                 computation techniques to existing software using
                 common software engineering tools. By enabling
                 evolutionary techniques within the existing software
                 development tool chain, this work is more likely to be
                 of practical benefit to the developers and maintainers
                 of real-world software systems.",

Genetic Programming entries for Eric Schulte