GISMO: Genetic Improvement of Software for Multiple Objectives |
|
|
Principal Investigator
Prof. Mark Harman,
CREST, UCL Named Research Fellow Dr. William B. Langdon, CREST, UCL Academic Collaborators Marc Schoenauer, INRIA, France Andrea Arcuri, Schlumberger, Norway Industrial Collaborators Motorola Labs, Basingstoke, UK. IBM nVidia
EPSRC Grant Ref:
EP/I033688/1
Summary pdf |
Major components of GISMOE approach. Left: system to be improved and its test suite. Right: genetic programming optimises modifications which originate from a grammar that describes the original system. |
The term component should be interpreted in its widest context. It refers to any piece of code that can be identified as a subpart of the overall program or system with well-defined interface to the encasing system. For example, we include functions, files, modules and procedures, for which interfaces are defined by parameters and shared global variables. We also include smaller segments of contiguous code that perform a coherent well-defined task or set of tasks, for which the interface is captured by the defined and referenced variables of the segment of code. What is important is that these pieces of code can be replaced by an evolved component that preserves their functionality and interface, while maximising achievement of challenging new multiple objectives.
Managing any one of these non-functional objectives is a challenge, but managing several at once is a daunting prospect, even for the most skilled and experience developer. The multiple objectives that have to be optimised are often conflicting. For instance, one can often trade speed of execution for compiled code size. Humans cannot be expected to optimally balance such competing constraints and may miss potentially valuable solutions.


Code 'transplant' could revolutionise programming,

How computers are learning to make human software work more efficiently,
John R. Woodward and Justyna Petke and William Langdon,
The Conversation,
June 25, 2015 10.08am BST.
PDF

Optimising Existing Software with Genetic Programming,
William B. Langdon and Mark Harman,
IEEE Transactions on Evolutionary Computation,
Feb 2015, 19(1), 118-135.
DOI
Draft.
Celebration photo.
Improving CUDA DNA Analysis Software with Genetic Programming,
William B. Langdon and Brian Yee Hong Lam and Justyna Petke and Mark Harman,
GECCO 2015.
pp1063-1070.
DOI
PDF.
slides
Improving 3D Medical Image Registration CUDA Software with Genetic Programming,
William B. Langdon and Marc Modat and Justyna Petke and Mark Harman.
In
Christian Igel,
et al.
eds.,
ACM
DOI
PDF.
Genetically Improved CUDA C++ Software,
W. B. Langdon and M. Harman.
In
EuroGP-2014,
Miguel Nicolau and Krzysztof Krawiec and Malcolm Heywood
eds.,
LNCS, Springer.
PDF
Slides.
Using Genetic Improvement & Code Transplants to Specialise a C++ Program to a Problem Class,
Justyna Petke and Mark Harman and William B. Langdon and Westley Weimer.
In
EuroGP-2014,
Miguel Nicolau and Krzysztof Krawiec and Malcolm Heywood
eds.,
LNCS, Springer.
Winner Humie Award
PDF
Slides
Grow and Serve: Growing Django Citation Services Using SBSE,
Yue Jia and Mark Harman and William B. Langdon and Alexandru Marginean,
In SSBSE Challenge,
Shin Yoo and Leandro Minku Eds.,
SSBSE 2015,
Bergamo, Italy.
PDF
DOI
Babel Pidgin: SBSE can grow and graft entirely new functionality into a real world system,
Mark Harman and Yue Jia and William B. Langdon.
In SSBSE 2014, LNCS 8636, 247-252,
Fortaleza, Brazil, Springer.
Winner SSBSE-2014 Challenge Track.
PDF
DOI
video
Genetic Improvement of Software for Multiple Objectives,
W. B. Langdon.
In
SSBSE 2015,
Symposium on Search-Based Software Engineering,
Bergamo, Italy,
September 5-7, 2015,
pp12-28.
Invited Keynote.
Springer.
PDF
DOI.
Genetic Improvement of Programs,
William B. Langdon.
In
SYNASC 2014,
16th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing, Timisoara, 2014,
pp14-19.
Post-proceedings.
Invited Keynote.
IEEE.
PDF
DOI.
Software is Not Fragile,
William B. Langdon and Justyna Petke.
In
CS-DC 2015,
Complex Systems 2015 World e-Conference,
30 September - 1 October 2015,
Invited paper.
Springer.
PDF
presentation.
Search based software engineering for software product line engineering: a survey and directions for future work,
Mark Harman and Yue Jia and Jens Krinke and W. B. Langdon and Justyna Petke and Yuanyuan Zhang,
In
SPLC 2014, pp5-18,
Invited Keynote,
ACM.
PDF
DOI
Genetic Improvement for Adaptive Software Engineering,
Mark Harman et al.,
In
SEAMS-2014,
Gregor Engels
ed.,
Invited Keynote.
PDF
Genetic Programming for Reverse Engineering,
Mark Harman, William B. Langdon and
Westley Weimer,
WCRE 2013 Keynote.
Koblenz, 14-17 October,
PDF
The GISMOE challenge: Constructing the Pareto Program Surface Using Genetic Programming to Find Better Programs,
Mark Harman, William B. Langdon, Yue Jia, David R. White, Andrea Arcuri and John A. Clark,
ASE 2012 Keynote.
PDF
DOI
The GISMOE Architecture,
Yue Jia and
Mark Harman and
Bill Langdon.
CSBSE 2013 Keynote
PDF.
Evolving a CUDA Kernel from an nVidia Template,
W.B. Langdon
and
M. Harman.
In
CIGPU
(WCCI) 2010,
pages 2376-2383,
18-23 July, Barcelona.
PDF
more...
Applying Genetic Improvement to MiniSAT,
Justyna Petke,
William B. Langdon and Mark Harman,
SSBSE 2013,
LNCS 8084, pp257-262.
PDF
DOI
Grow and Graft a better CUDA pknotsRG for RNA pseudoknot free energy calculation,
William B. Langdon and and Mark Harman,
in GI 2015,
pp805-810.
DOI
PDF
Slides
code
Which is faster: Bowtie2GP > Bowtie > Bowtie2 > BWA,
W. B. Langdon,
GECCO 2013 late breaking abstract.
PDF
(Linux 64bit executable, BT2 human genome index)
more...
Genetically Improved Software,
William B. Langdon,
in
Handbook of Genetic Programming Applications,
Amir H. Gandomi, Amir H. Alavi and Conor Ryan,
Editors.
Chapter 8, pp 181-220
DOI
Preprint.
Exact Mean Absolute Error of Baseline Predictor, MARP0,
William B. Langdon and Javier Dolado and Federica Sarro and Mark Harman,
Information and Software Technology,
73 (May 2016) pages 16-18.
DOI:10.1016/j.infsof.2016.01.003
PDF
| Mutation | Source file | line | type | Original Code | New Code |
|---|---|---|---|---|---|
| replaced | bt2_io.cpp | 622 | for2 | i < offsLenSampled | i < this->_nPat |
| replaced | sa_rescomb.cpp | 50 | for2 | i < satup_->offs.size() | 0 |
| disabled | sa_rescomb.cpp | 69 | for2 | j < satup_->offs.size() | |
| replaced | aligner_swsse_ee_u8.cpp | 707 | vh = _mm_max_epu8(vh, vf); | vmax = vlo; | |
| deleted | aligner_swsse_ee_u8.cpp | 766 | pvFStore += 4; | ||
| replaced | aligner_swsse_ee_u8.cpp | 772 | _mm_store_si128(pvHStore, vh); | vh = _mm_max_epu8(vh, vf); | |
| deleted | aligner_swsse_ee_u8.cpp | 778 | ve = _mm_max_epu8(ve, vh); |