Skip to main content

Multi-objective Improvement of Software Using Co-evolution and Smart Seeding

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 5361))

Abstract

Optimising non-functional properties of software is an important part of the implementation process. One such property is execution time, and compilers target a reduction in execution time using a variety of optimisation techniques. Compiler optimisation is not always able to produce semantically equivalent alternatives that improve execution times, even if such alternatives are known to exist. Often, this is due to the local nature of such optimisations. In this paper we present a novel framework for optimising existing software using a hybrid of evolutionary optimisation techniques. Given as input the implementation of a program or function, we use Genetic Programming to evolve a new semantically equivalent version, optimised to reduce execution time subject to a given probability distribution of inputs. We employ a co-evolved population of test cases to encourage the preservation of the program’s semantics, and exploit the original program through seeding of the population in order to focus the search. We carry out experiments to identify the important factors in maximising efficiency gains. Although in this work we have optimised execution time, other non-functional criteria could be optimised in a similar manner.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.99
Price excludes VAT (USA)
  • Compact, lightweight 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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Koza, J.R.: Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, Cambridge (1992)

    MATH  Google Scholar 

  2. Arcuri, A., Yao, X.: Coevolving programs and unit tests from their specification. In: IEEE International Conference on Automated Software Engineering (ASE), pp. 397–400 (2007)

    Google Scholar 

  3. Arcuri, A., Yao, X.: A novel co-evolutionary approach to automatic software bug fixing. In: IEEE Congress on Evolutionary Computation (CEC), pp. 162–168 (2008)

    Google Scholar 

  4. Langdon, W.B., Nordin, P.: Seeding genetic programming populations. In: Poli, R., Banzhaf, W., Langdon, W.B., Miller, J., Nordin, P., Fogarty, T.C. (eds.) EuroGP 2000. LNCS, vol. 1802, pp. 304–315. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  5. Reformat, M., Xinwei, C., Miller, J.: On the possibilities of (pseudo-) software cloning from external interactions. Soft Computing 12(1), 29–49 (2007)

    Article  Google Scholar 

  6. Hillis, W.D.: Co-evolving parasites improve simulated evolution as an optimization procedure. Physica D 42(1-3), 228–234 (1990)

    Article  Google Scholar 

  7. Myers, G.: The Art of Software Testing. Wiley, New York (1979)

    MATH  Google Scholar 

  8. Binkert, N., Dreslinski, R., Hsu, L., Lim, K., Saidi, A., Reinhardt, S.: The M5 simulator: Modeling networked systems. IEEE Micro. 26(4), 52–60 (2006)

    Article  Google Scholar 

  9. White, D.R., Clark, J., Jacob, J., Poulding, S.: Searching for Resource-Efficient Programs: Low-Power Pseudorandom Number Generators. In: GECCO 2008: Proceedings of the 10th Annual Conference on Genetic and Evolutionary Computation, pp. 1775–1782 (2008)

    Google Scholar 

  10. Zitzler, E., Laumanns, M., Thiele, L.: SPEA2: Improving the Strength Pareto Evolutionary Algorithm. Technical Report 103, Swiss Federal Institute of Technology (2001)

    Google Scholar 

  11. Arcuri, A., Lehre, P.K., Yao, X.: Theoretical runtime analyses of search algorithms on the test data generation for the triangle classification problem. In: International Workshop on Search-Based Software Testing (SBST), pp. 161–169 (2008)

    Google Scholar 

  12. McMinn, P.: Search-based software test data generation: A survey. Software Testing, Verification and Reliability 14(2), 105–156 (2004)

    Article  Google Scholar 

  13. Miller, J., Reformat, M., Zhang, H.: Automatic test data generation using genetic algorithm and program dependence graphs. Info. and Software Technology 48(7), 586–605 (2006)

    Article  Google Scholar 

  14. ECJ: Evolutionary computation in Java, http://www.cs.gmu.edu/~eclab/projects/ecj/

  15. Montana, D.J.: Strongly typed GP. Evolutionary Computation 3(2), 199–230 (1995)

    Article  Google Scholar 

  16. Montgomery, D.C.: Design and Analysis of Experiments. John Wiley & Sons, Chichester (2006)

    Google Scholar 

  17. Langdon, W.B., Poli, R.: Foundations of Genetic Programming. Springer, Heidelberg (2002)

    Book  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Arcuri, A., White, D.R., Clark, J., Yao, X. (2008). Multi-objective Improvement of Software Using Co-evolution and Smart Seeding. In: Li, X., et al. Simulated Evolution and Learning. SEAL 2008. Lecture Notes in Computer Science, vol 5361. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-89694-4_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-89694-4_7

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-89693-7

  • Online ISBN: 978-3-540-89694-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics