Skip to main content

Comparing Genetic Programming Approaches for Non-functional Genetic Improvement

Case Study: Improvement of MiniSAT’s Running Time

  • Conference paper
  • First Online:

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

Abstract

Genetic improvement (GI) uses automated search to find improved versions of existing software. While most GI work use genetic programming (GP) as the underlying search process, focus is usually given to the target software only. As a result, specifics of GP algorithms for GI are not well understood and rarely compared to one another. In this work, we propose a robust experimental protocol to compare different GI search processes and investigate several variants of GP- and random-based approaches. Through repeated experiments, we report a comparative analysis of these approaches, using one of the previously used GI scenarios: improvement of runtime of the MiniSAT satisfiability solver. We conclude that the test suites used have the most significant impact on the GI results. Both random and GP-based approaches are able to find improved software, even though the percentage of viable software variants is significantly smaller in the random case (\(14.5\%\) vs. \(80.1\%\)). We also report that GI produces MiniSAT variants up to twice as fast as the original on sets of previously unseen instances from the same application domain.

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   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.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.

    https://github.com/coinse/pyggi.

  2. 2.

    https://www.srcml.org/.

  3. 3.

    https://perf.wiki.kernel.org/index.php/Main_Page.

  4. 4.

    http://minisat.se/MiniSat.html.

  5. 5.

    Fastest SAT instances, fastest UNSAT instances, SAT instances, UNSAT instances, and slowest (both SAT or UNSAT) instances. Respective bin sizes: 50, 37, 17, 18, 8.

  6. 6.

    After rounding, we use \(\{p_e,p_c,p_m\} = \{1,5,4\}\), \(\{2,9,9\}\), \(\{5,23,22\}\), and \(\{10,45,45\}\).

References

  1. An, G., Blot, A., Petke, J., Yoo, S.: PyGGI 2.0: language independent genetic improvement framework. In: Proceedings of the 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2019), pp. 1100–1104. ACM (2019). https://doi.org/10.1145/3338906.3341184

  2. Arcuri, A., Yao, X.: A novel co-evolutionary approach to automatic software bug fixing. In: Proceedings of the Congress on Evolutionary Computation (CEC 2008), pp. 162–168 (2008). https://doi.org/10.1109/CEC.2008.4630793

  3. Bruce, B.R., Petke, J., Harman, M.: Reducing energy consumption using genetic improvement. In: Proceedings of the 10th Genetic and Evolutionary Computation Conference (GECCO 2015), pp. 1327–1334. ACM (2015). https://doi.org/10.1145/2739480.2754752

  4. Eén, N., Sörensson, N.: An extensible SAT-solver. In: Giunchiglia, E., Tacchella, A. (eds.) SAT 2003. LNCS, vol. 2919, pp. 502–518. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-24605-3_37

    Chapter  Google Scholar 

  5. Forrest, S., Nguyen, T., Weimer, W., Le Goues, C.: A genetic programming approach to automated software repair. In: Proceedings of the 4th Genetic and Evolutionary Computation Conference (GECCO 2009), pp. 947–954. ACM (2009). https://doi.org/10.1145/1569901.1570031

  6. Langdon, W.B., Harman, M.: Evolving a CUDA kernel from an nVidia template. In: Proceedings of the Congress on Evolutionary Computation (CEC 2010), pp. 1–8 (2010). https://doi.org/10.1109/CEC.2010.5585922

  7. Langdon, W.B., Harman, M.: Optimizing existing software with genetic programming. IEEE Trans. Evol. Comput. 19(1), 118–135 (2015). https://doi.org/10.1109/TEVC.2013.2281544

    Article  Google Scholar 

  8. Le, X.D., Chu, D., Lo, D., Le Goues, C., Visser, W.: S3: syntax- and semantic-guided repair synthesis via programming by examples. In: Proceedings of the ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2017), pp. 593–604. ACM (2017). https://doi.org/10.1145/3106237.3106309

  9. Le Goues, C., Dewey-Vogt, M., Forrest, S., Weimer, W.: A systematic study of automated program repair: fixing 55 out of 105 bugs for \$8 each. In: Proceedings of the 34th International Conference on Software Engineering (ICSE 2012), pp. 3–13. IEEE Computer Society (2012). https://doi.org/10.1109/ICSE.2012.6227211

  10. Le Goues, C., Nguyen, T., Forrest, S., Weimer, W.: GenProg: a generic method for automatic software repair. IEEE Trans. Softw. Eng. 38(1), 54–72 (2012). https://doi.org/10.1109/TSE.2011.104

    Article  Google Scholar 

  11. Petke, J., Haraldsson, S.O., Harman, M., Langdon, W.B., White, D.R., Woodward, J.R.: Genetic improvement of software: a comprehensive survey. IEEE Trans. Evol. Comput. 22(3), 415–432 (2018). https://doi.org/10.1109/TEVC.2017.2693219

    Article  Google Scholar 

  12. 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., et al. (eds.) EuroGP 2014. LNCS, vol. 8599, pp. 137–149. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-662-44303-3_12

    Chapter  Google Scholar 

  13. Petke, J., Harman, M., Langdon, W.B., Weimer, W.: Specialising software for different downstream applications using genetic improvement and code transplantation. IEEE Trans. Softw. Eng. 44(6), 574–594 (2018). https://doi.org/10.1109/TSE.2017.2702606

    Article  Google Scholar 

  14. Petke, J., Langdon, W.B., Harman, M.: Applying genetic improvement to MiniSAT. In: Ruhe, G., Zhang, Y. (eds.) SSBSE 2013. LNCS, vol. 8084, pp. 257–262. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-39742-4_21

    Chapter  Google Scholar 

  15. Schulte, E.M., DiLorenzo, J., Weimer, W., Forrest, S.: Automated repair of binary and assembly programs for cooperating embedded devices. In: Proceedings of the 18th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2013), pp. 317–328 (2013). https://doi.org/10.1145/2451116.2451151

  16. Weaver, V.M., Terpstra, D., Moore, S.: Non-determinism and overcount on modern hardware performance counter implementations. In: Proceedings of the 2013 International Symposium on Performance Analysis of Systems & Software (ISSTA 2013), pp. 215–224. IEEE (2013). https://doi.org/10.1109/ISPASS.2013.6557172

  17. Weimer, W.: Patches as better bug reports. In: Proceedings of the 5th International Conference on Generative Programming and Component Engineering (GPCE 2006), pp. 181–190 (2006). https://doi.org/10.1145/1173706.1173734

  18. Weimer, W., Nguyen, T., Le Goues, C., Forrest, S.: Automatically finding patches using genetic programming. In: Proceedings of the 31st International Conference on Software Engineering (ICSE 2009), pp. 364–374. IEEE Computer Society (2009). https://doi.org/10.1109/ICSE.2009.5070536

  19. White, D.R., Arcuri, A., Clark, J.A.: Evolutionary improvement of programs. IEEE Trans. Evol. Comput. 15(4), 515–538 (2011). https://doi.org/10.1109/TEVC.2010.2083669

    Article  Google Scholar 

Download references

Acknowledgement

This work is supported by UK EPSRC Fellowship EP/P023991/1.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Aymeric Blot .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Blot, A., Petke, J. (2020). Comparing Genetic Programming Approaches for Non-functional Genetic Improvement. In: Hu, T., Lourenço, N., Medvet, E., Divina, F. (eds) Genetic Programming. EuroGP 2020. Lecture Notes in Computer Science(), vol 12101. Springer, Cham. https://doi.org/10.1007/978-3-030-44094-7_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-44094-7_5

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-44093-0

  • Online ISBN: 978-3-030-44094-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics