skip to main content
10.1145/2739482.2768419acmconferencesArticle/Chapter ViewAbstractPublication PagesgeccoConference Proceedingsconference-collections
research-article

locoGP: Improving Performance by Genetic Programming Java Source Code

Published: 11 July 2015 Publication History

Abstract

We present locoGP, a Genetic Programming (GP) system written in Java for evolving Java source code. locoGP was designed to improve the performance of programs as measured in the number of operations executed. Variable test cases are used to maintain functional correctness during evolution. The operation of locoGP is demonstrated on a number of typically constructed "off-the-shelf" hand-written implementations of sort and prefix-code programs. locoGP was able to find improvement opportunities in all test problems.

References

[1]
Agapitos, A., and Lucas, S. Evolving modular recursive sorting algorithms. Genetic Programming (2007), 301--310.
[2]
Arcuri, A., White, D., Clark, J., and Yao, X. Multi-objective improvement of software using co-evolution and smart seeding. Simulated Evolution and Learning (2008), 61--70.
[3]
Castle, T., and Johnson, C. G. Evolving high-level imperative program trees with strongly formed genetic programming. In Genetic Programming. Springer, 2012, pp. 1--12.
[4]
Chennupati, G., Azad, R. M. A., and Ryan, C. Automatic evolution of parallel sorting programs on multi-cores. In Applications of Evolutionary Computation. Springer, 2015, pp. 706--717.
[5]
Cinnéide, M. O. Automated application of design patterns: a refactoring approach. PhD thesis, Trinity College Dublin., 2001.
[6]
Cody-Kenny, B., and Barrett, S. The emergence of useful bias in self-focusing genetic programming for software optimisation. In Symposium on Search-Based Software Engineering (Leningrad, Aug. 24--26 2013), G. Fraser, Ed. Graduate Student Track.
[7]
Díaz, E., Tuya, J., Blanco, R., and Dolado, J. J. A tabu search algorithm for structural software testing. Computers & Operations Research 35, 10 (2008), 3052--3072.
[8]
Forrest, S., Nguyen, T., Weimer, W., and Goues, C. L. A genetic programming approach to automated software repair. In GECCO (2009), F. Rothlauf, Ed., ACM, pp. 947--954.
[9]
Fukunaga, A., Stechert, A., and Mutz, D. A genome compiler for high performance genetic programming. Genetic Programming (1998), 86--94.
[10]
Harman, M., Jia, Y., and Langdon, W. B. Babel pidgin: SBSE can grow and graft entirely new functionality into a real world system. In SSBSE Challenge Track (Fortaleza, Brazil, 26--29 Aug. 2014), M. Barros, Ed. Accepted.
[11]
Huffman, D. A., et al. A method for the construction of minimum redundancy codes. Proceedings of the IRE 40, 9 (1952), 1098--1101.
[12]
Kinnear Jr, K. Evolving a sort: Lessons in genetic programming. In Neural Networks, 1993., IEEE International Conference on (1993), IEEE, pp. 881--888.
[13]
Knuth, D. E. Structured programming with go to statements. ACM Computing Surveys (CSUR) 6, 4 (1974), 261--301.
[14]
Koza, J. R. Genetic programming: on the programming of computers by means of natural selection, vol. 1. MIT press, 1992.
[15]
Kuperberg, M., Krogmann, M., and Reussner, R. ByCounter: Portable Runtime Counting of Bytecode Instructions and Method Invocations. In Proceedings of the 3rd International Workshop on Bytecode Semantics, Verification, Analysis and Transformation, Budapest, Hungary, 5th April 2008 (ETAPS 2008, 11th European Joint Conferences on Theory and Practice of Software) (2008).
[16]
Lambert, J. M., and Power, J. F. Platform independent timing of java virtual machine bytecode instructions. Electronic Notes in Theoretical Computer Science 220, 3 (2008), 97--113.
[17]
Langdon, W. Performance of genetic programming optimised bowtie2 on genome comparison and analytic testing (gcat) benchmarks.
[18]
Langdon, W. B., and Harman, M. Genetically improving 50000 lines of C+. Research Note RN/12/09, Department of Computer Science, University College London, Gower Street, London WC1E 6BT, UK, 19 Sept. 2012.
[19]
Langdon, W. B., and Harman, M. Optimising existing software with genetic programming. IEEE Transactions on Evolutionary Computation (2013).
[20]
Le Goues, C., Dewey-Vogt, M., Forrest, S., and Weimer, W. A systematic study of automated program repair: Fixing 55 out of 105 bugs for$8 each. In Software Engineering (ICSE), 2012 34th International Conference on (2012), IEEE, pp. 3--13.
[21]
Le Goues, C., Weimer, W., and Forrest, S. Representations and operators for improving evolutionary software repair. In Proceedings of the fourteenth international conference on Genetic and evolutionary computation conference (2012), ACM, pp. 959--966.
[22]
Necula, G. C., McPeak, S., Rahul, S. P., and Weimer, W. Cil: Intermediate language and tools for analysis and transformation of c programs. In Compiler Construction. Springer, 2002, pp. 213--228.
[23]
O'Keeffe, M., and Cinnéide, M. Search-based refactoring: an empirical study. Journal of Software Maintenance and Evolution: Research and Practice 20, 5 (2008), 345--364.
[24]
O'Neill, M., Nicolau, M., and Agapitos, A. Experiments in program synthesis with grammatical evolution: A focus on integer sorting. In Evolutionary Computation (CEC), 2014 IEEE Congress on (2014), IEEE, pp. 1504--1511.
[25]
Orlov, M., and Sipper, M. Flight of the finch through the java wilderness. Evolutionary Computation, IEEE Transactions on 15, 2 (2011), 166--182.
[26]
Petke, J., Harman, M., Langdon, W. B., and Weimer, W. Using genetic improvement & code transplants to specialise a c+ program to a problem class. In 17th European Conference on Genetic Programming (EuroGP), Granada, Spain (2014).
[27]
Petke, J., Langdon, W. B., and Harman, M. Applying genetic improvement to minisat. In Search Based Software Engineering. Springer, 2013, pp. 257--262.
[28]
Petke, J., Langdon, W. B., and Harman, M. Applying genetic improvement to MiniSAT. In Symposium on Search-Based Software Engineering (Leningrad, Aug. 24--26 2013), G. Fraser, Ed. Short Papers.
[29]
Poli, R. TinyGP. http://cswww.essex.ac.uk/staff/rpoli/TinyGP/, 2004.
[30]
Ryan, C. Automatic Re-engineering of Software Using Genetic Programming, vol. 2 of Genetic Programming. Kluwer Academic Publishers, 1 Nov. 1999.
[31]
Ryan, C., and Walsh, P. Paragen ii: evolving parallel transformation rules. In Computational Intelligence Theory and Applications. Springer, 1997, pp. 573--573.
[32]
Schulte, E., Fry, Z. P., Fast, E., Weimer, W., and Forrest, S. Software mutational robustness. arXiv preprint arXiv:1204.4224 (2012).
[33]
Simons, C. Interactive evolutionary computing in early lifecycle software engineering design.
[34]
Soule, T., and Foster, J. A. Effects of code growth and parsimony pressure on populations in genetic programming. Evolutionary Computation 6, 4 (1998), 293--309.
[35]
Spector, L. Autoconstructive evolution: Push, pushgp, and pushpop. In Proceedings of the Genetic and Evolutionary Computation Conference (GECCO-2001) (2001), pp. 137--146.
[36]
Various. Rosettacode.org. http://rosettacode.org. Accessed: 2014-09--30.
[37]
Weimer, W., Forrest, S., Goues, C. L., and Nguyen, T. Automatic program repair with evolutionary computation. Commun. ACM 53, 5 (2010), 109--116.
[38]
Weimer, W., Nguyen, T., Goues, C. L., and Forrest, S. Automatically finding patches using genetic programming. In ICSE (2009), IEEE, pp. 364--374.
[39]
Weimer, W., Nguyen, T., Le Goues, C., and Forrest, S. Automatically finding patches using genetic programming. In Proceedings of the 31st International Conference on Software Engineering (2009), IEEE Computer Society, pp. 364--374.
[40]
Wheeler, D. A. Sloccount, 2001.
[41]
White, D., Arcuri, A., and Clark, J. Evolutionary improvement of programs. Evolutionary Computation, IEEE Transactions on, 99 (2011), 1--24.
[42]
White, D. R., Clark, J., Jacob, J., and Poulding, S. M. Searching for resource-efficient programs: Low-power pseudorandom number generators. In Proceedings of the 10th annual conference on Genetic and evolutionary computation (2008), ACM, pp. 1775--1782.

Cited By

View all
  • (2025)A Comprehensive Survey of Benchmarks for Improvement of Software's Non-Functional PropertiesACM Computing Surveys10.1145/3711119Online publication date: 27-Jan-2025
  • (2022)Evolutionary Approaches to Test Data Generation for Object-Oriented SoftwareResearch Anthology on Agile Software, Software Development, and Testing10.4018/978-1-6684-3702-5.ch044(884-909)Online publication date: 2022
  • (2022)Evaluation of genetic improvement tools for improvement of non-functional properties of softwareProceedings of the Genetic and Evolutionary Computation Conference Companion10.1145/3520304.3534004(1956-1965)Online publication date: 9-Jul-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
GECCO Companion '15: Proceedings of the Companion Publication of the 2015 Annual Conference on Genetic and Evolutionary Computation
July 2015
1568 pages
ISBN:9781450334884
DOI:10.1145/2739482
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].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 11 July 2015

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. execution cost
  2. genetic programming
  3. implementation
  4. java
  5. performance improvement

Qualifiers

  • Research-article

Conference

GECCO '15
Sponsor:

Acceptance Rates

Overall Acceptance Rate 1,669 of 4,410 submissions, 38%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)1
Reflects downloads up to 01 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2025)A Comprehensive Survey of Benchmarks for Improvement of Software's Non-Functional PropertiesACM Computing Surveys10.1145/3711119Online publication date: 27-Jan-2025
  • (2022)Evolutionary Approaches to Test Data Generation for Object-Oriented SoftwareResearch Anthology on Agile Software, Software Development, and Testing10.4018/978-1-6684-3702-5.ch044(884-909)Online publication date: 2022
  • (2022)Evaluation of genetic improvement tools for improvement of non-functional properties of softwareProceedings of the Genetic and Evolutionary Computation Conference Companion10.1145/3520304.3534004(1956-1965)Online publication date: 9-Jul-2022
  • (2020)Impact of Test Suite Coverage on Overfitting in Genetic Improvement of SoftwareSearch-Based Software Engineering10.1007/978-3-030-59762-7_14(188-203)Online publication date: 30-Sep-2020
  • (2019)GinProceedings of the Genetic and Evolutionary Computation Conference10.1145/3321707.3321841(985-993)Online publication date: 13-Jul-2019
  • (2019)Nowhere Metamorphic Malware Can Hide - A Biological Evolution Inspired Detection SchemeDependability in Sensor, Cloud, and Big Data Systems and Applications10.1007/978-981-15-1304-6_29(369-382)Online publication date: 5-Nov-2019
  • (2019)Marketing Meets Data Science: Bridging the GapBusiness and Consumer Analytics: New Ideas10.1007/978-3-030-06222-4_1(3-117)Online publication date: 31-May-2019
  • (2018)Challenges on applying genetic improvement in JavaScript using a high-performance computerJournal of Software Engineering Research and Development10.1186/s40411-018-0056-26:1Online publication date: 6-Oct-2018
  • (2018)Experiments in genetic divergence for emergent systemsProceedings of the 4th International Workshop on Genetic Improvement Workshop10.1145/3194810.3194813(9-16)Online publication date: 2-Jun-2018
  • (2018)Genetic Improvement of Software: A Comprehensive SurveyIEEE Transactions on Evolutionary Computation10.1109/TEVC.2017.269321922:3(415-432)Online publication date: Jun-2018
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media