Skip to the content.

What is Genetic Improvement?

Genetic Improvement is the application of evolutionary and search-based optimisation methods to the improvement of existing software. For example, it may be used to automate the process of bug-fixing or execution time optimisation.

What is a GI Workshop?

As academics in the field, we run the workshop to offer an opportunity for researchers to disseminate work, but most importantly to meet and discuss with other GI researchers. So far we had 6 editions of the workshop, four co-located with GECCO (in 2015, 2016, 2017 and 2018) and two with ICSE (in 2018 and 2019). Since 2009 there have been four human competitive awards for work in GI (two Gold, one Silver and one Bronze) presented at GECCO and three best papers, including at the International Conference on Software Engineering and International Symposium on Software Testing and Analysis.

How can I find out more?

Check out this blog article about GI on the IEEE Software Blog, see recent survey, GI special issue, and an Open PhD tutorial. In June 2016 there was a talk on GI at the International Summer School on Software Engineering, given by Professor Mark Harman (UCL), one of the foremost experts on GI and an international leader in search-based software engineering. In January 2016 there was a CREST Open Workshop at UCL on Genetic Improvement. Full details of the talks and speakers are available. A second workshop took place in January 2017. There was be a Dagstuhl Seminar on GI at the end of January 2018. Proceedings of GI 2015 can be found in GECCO'15 Companion. Proceedings of GI 2016 can be found in GECCO'16 Companion. Proceedings of GI 2017 can be found in GECCO'17 Companion. Also, try Wikipedia.

What are some examples of GI Frameworks?

Gin: GI in No Time - a Simple Microframework for Genetic Improvement "The goal of Gin is to stimulate development in GI tooling, and to lower the barrier to experimenting with GI and related ideas such as program fragility. GrammaTech released extensive tooling for the programmatic modification and evaluation of software; focused on modifying C/C++ source, assembly, and ELF files: link; and C/C++ manipulation tooling: link. An excellent overview of automated software repair tools is given by Martin Monperrus. Here are a few other examples of existing work: Other frameworks and libraries identified at the Dagstuhl Seminar on Genetic Improvement of Software held in January 2018: MuScalpel: automated software transplantation DSpot: a tool for Genetic Improvement of test suites PyGGI: Python General Framework for GI ARJA: multi-objective automated program repair Repairnator Astor4Android: program repair for Android Apps

Can you suggest good GI Benchmarks?

GI-improved test subjects with test cases:

http://www0.cs.ucl.ac.uk/staff/ucacbbl/gismo/ (see Free Code heading)

http://www.cs.ucl.ac.uk/staff/W.Langdon/gggp/#code (see Free Code heading)

http://crest.cs.ucl.ac.uk/autotransplantation/downloads/artifact.html

(several frameworks also come with benchmarks, please see GI frameworks above)

Automated program repair, bug repositories:

http://program-repair.org/benchmarks.html

Benchmarks identified at the Dagstuhl Seminar on Genetic Improvement of Software:

Parsec: http://parsec.cs.princeton.edu/

SPEC INT: https://www.spec.org/benchmarks.html