Skip to main content

A General-Purpose Framework for Genetic Improvement

  • Conference paper
  • First Online:

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

Abstract

Genetic Improvement is an evolutionary-based technique. Despite its relatively recent introduction, several successful applications have been already reported in the scientific literature: it has been demonstrated able to modify the code complex programs without modifying their intended behavior; to increase performance with regards to speed, energy consumption or memory use. Some results suggest that it could be also used to correct bugs, restoring the software’s intended functionalities. Given the novelty of the technique, however, instances of Genetic Improvement so far rely upon ad-hoc, language-specific implementations. In this paper, we propose a general framework based on the software engineering’s idea of mutation testing coupled with Genetic Programming, that can be easily adapted to different programming languages and objective. In a preliminary evaluation, the framework efficiently optimizes the code of the md5 hash function in C, Java, and Python.

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 EPUB and 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

Notes

  1. 1.

    http://geneticimprovementsoftware.com/.

  2. 2.

    \(\mu \)GP is hosted on SourceForge http://ugp3.sourceforge.net/.

References

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

    MATH  Google Scholar 

  2. Langdon, W.B., Harman, M.: Optimising existing software with genetic programming. IEEE Transactions on Evolutionary Computation (99) (2013)

    Google Scholar 

  3. Bruce, B.R., Petke, J., Harman, M.: Reducing energy consumption using genetic improvement. In: Proceedings of the 2015 on Genetic and Evolutionary Computation Conference, pp. 1327–1334. ACM (2015)

    Google Scholar 

  4. Petke, J., Harman, M., Langdon, W.B., Weimer, W.: Using genetic improvement and code transplants to specialise a C++ program to a problem class. In: Nicolau, M., Krawiec, K., Heywood, M.I., Castelli, M., García-Sánchez, P., Merelo, J.J., Rivas Santos, V.M., Sim, K. (eds.) EuroGP 2014. LNCS, vol. 8599, pp. 137–149. Springer, Heidelberg (2014)

    Google Scholar 

  5. Wu, F., Weimer, W., Harman, M., Jia, Y., Krinke, J.: Deep parameter optimisation. In: Proceedings of the 2015 on Genetic and Evolutionary Computation Conference, pp. 1375–1382. ACM (2015)

    Google Scholar 

  6. Schulte, E.M., Weimer, W., Forrest, S.: Repairing COTS router firmware without access to source code or test suites: a case study in evolutionary software repair. In: Proceedings of the Companion Publication of the 2015 Annual Conference on Genetic and Evolutionary Computation. GECCO Companion 2015, pp. 847–854. ACM, New York (2015)

    Google Scholar 

  7. Squillero, G.: MicroGP - an evolutionary assembly program generator. Genet. Prog. Evol. Mach. 6(3), 247–263 (2005)

    Article  Google Scholar 

  8. Squillero, G.: Artificial evolution in computer aided design: from the optimization of parameters to the creation of assembly programs. Computing 93(2–4), 103–120 (2011)

    Article  MathSciNet  Google Scholar 

  9. Corno, F., Sánchez, E., Squillero, G.: Evolving assembly programs: how games help microprocessor validation. IEEE Trans. Evol. Comput. 9(6), 695–706 (2005)

    Article  Google Scholar 

  10. Tonda, A., Lutton, E., Squillero, G., Wuillemin, P.-H.: A memetic approach to Bayesian network structure learning. In: Esparcia-Alcázar, A.I. (ed.) EvoApplications 2013. LNCS, vol. 7835, pp. 102–111. Springer, Heidelberg (2013)

    Google Scholar 

  11. Bucur, D., Iacca, G., Squillero, G., Tonda, A.: The impact of topology on energy consumption for collection tree protocols: an experimental assessment through evolutionary computation. Appl. Soft Comput. 16, 210–222 (2014)

    Article  Google Scholar 

  12. Belisário, L.S., Pierreval, H.: Using genetic programming and simulation to learn how to dynamically adapt the number of cards in reactive pull systems. Expert Syst. Appl. 42(6), 3129–3141 (2015)

    Article  Google Scholar 

  13. Gandini, S., Ruzzarin, W., Sanchez, E., Squillero, G., Tonda, A.: A framework for automated detection of power-related software errors in industrial verification processes. J. Electron. Test. 26(6), 689–697 (2010)

    Article  Google Scholar 

  14. DeMillo, R.A., Lipton, R.J., Sayward, F.G.: Hints on test data selection: help for the practicing programmer. Computer 4, 34–41 (1978)

    Article  Google Scholar 

  15. King, K.N., Offutt, A.J.: A FORTRAN language system for mutation-based software testing. Softw. Pract. Exp. 21(7), 685–718 (1991)

    Article  Google Scholar 

  16. Delamaro, M.E., Maldonado, J.C., Mathur, A.: Proteum-a tool for the assessment of test adequacy for C programs users guide. In: PCS, vol. 96, pp. 79–95 (1996)

    Google Scholar 

  17. Ma, Y.S., Offutt, J., Kwon, Y.R.: Mujava: an automated class mutation system. Softw. Test. Verif. Reliab. 15(2), 97–133 (2005)

    Article  Google Scholar 

  18. Derezińska, A., Rudnik, M.: Quality evaluation of object-oriented and standard mutation operators applied to C# programs. In: Furia, C.A., Nanz, S. (eds.) TOOLS 2012. LNCS, vol. 7304, pp. 42–57. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  19. Derezińska, A., Hałas, K.: Operators for mutation testing of python programs. Research report (2014)

    Google Scholar 

  20. Jia, Y., Harman, M.: An analysis and survey of the development of mutation testing. IEEE Trans. Softw. Eng. 37(5), 649–678 (2011)

    Article  Google Scholar 

  21. Rivest, R.: The Md5 Message-digest Algorithm. Princeton, RFC (1992)

    Book  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Alberto Tonda .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing AG

About this paper

Cite this paper

Marino, F., Squillero, G., Tonda, A. (2016). A General-Purpose Framework for Genetic Improvement. In: Handl, J., Hart, E., Lewis, P., López-Ibáñez, M., Ochoa, G., Paechter, B. (eds) Parallel Problem Solving from Nature – PPSN XIV. PPSN 2016. Lecture Notes in Computer Science(), vol 9921. Springer, Cham. https://doi.org/10.1007/978-3-319-45823-6_32

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-45823-6_32

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-45822-9

  • Online ISBN: 978-3-319-45823-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics