Loading...
 
Skip to main content

Genetic Improvement: Improving real-world software using computational search

Description

Within the large field of Search-Based Software Engineering (SBSE), Genetic Improvement (GI) aims to improve the properties of software, often at the level of source-code but increasingly at other levels. This means that it operates directly on Java or C source code, and it typically starts with real-world software. This makes GI attractive for industrial applications, e.g. in contrast to Program Synthesis that aims to computationally create applications from scratch. We will demonstrate how GI methodologies can be applied to improve functional properties, such as fixing bugs and increasing accuracy, and also to optimise the physical properties of code, such as power consumption, size of code, bandwidth, and execution time. We will explore where generative AI fits in and how GI and LLMs complement each other. We will, furthermore, show and discuss the importance of involving the end users in the research and development of GI tools. This applies especially to industry software developers and how the tools deliver or suggest their improvements.

The aim of the tutorial is to:
• examine the motives for evolving source code directly, rather than a language built from a function set and terminal set which has to be interpreted after a program has been evolved
• understand different approaches to implementing GI including operating directly on text files, and operating on abstract syntax trees
• appreciate the new research questions that can be addressed while operating on actual source code
• understand some of the issues regarding measuring non-functional properties such as execution time and power consumption
• examine some early examples of GI as well as current state-of-the-art examples, industrial examples, and a few HUMIES winners.
• summarise recent synergies between LLMs and GI.
• understanding links between GI and other techniques such as hyper-heuristics, automatic parameter tuning, and deep parameter tuning
• highlight some of the multi-objective research where programs have been evolved that lie on the Pareto front with axes representing different non-functional properties
• discuss the issue of search space sparseness and flatness in GI, and more effective targeting of mutations to improve efficiency
• discuss the human-computer interaction between software developers and tools that provide automatic-programming-type services.
• give an introduction to GI in No Time - an open source simple micro-framework for GI (https://github.com/gintool/gin) including a live demonstration.


Organizers

Image
Alexander Brownlee

University of Stirling, UK

Alexander (Sandy) Brownlee is an Associate Professor in the Division of Computing Science and Mathematics at the University of Stirling, where he leads the Data Science and Intelligent Systems research group. His main topics of interest are in search-based optimisation methods and machine learning, with a focus on decision support tools, and applications in civil engineering, transportation and software engineering. He has published over 85 peer-reviewed papers on these topics. He has worked with several leading businesses including BT, KLM, and IES on industrial applications of optimisation and machine learning. He serves as a reviewer for several journals and conferences in evolutionary computation, civil engineering and transportation, and is currently an Editorial Board member for the journals Complex And Intelligent Systems and Journal of Scheduling. He has also been an organiser of several workshops and tutorials at GECCO and CEC on genetic improvement of software, and on explainable AI for optimisation.


Image
Markus Wagner

Monash University, Australia

Markus Wagner is an Associate Professor at Monash University, Australia. He has done his PhD studies at the Max Planck Institute for Informatics in Saarbruecken, Germany and at the University of Adelaide, Australia. For the outcomes of his research, he has received a University Doctoral Research Medal, four best paper awards, a best poster award, a best presentation award, and a Humies Gold Award. His research topics range from mathematical runtime analysis of heuristic optimisation algorithms and theory-guided algorithm design to applications of heuristic methods to renewable energy production, professional team cycling and software engineering. So far, he has been a program committee member 80+ times, and he has written 150+ articles with 200+ different co-authors. He is an ACM Lifetime Member, is on SIGEVO's Executive Board and serves as the first ever Sustainability Officer. He has contributed to GECCOs as Workshop Chair and Competition Chair, and he has chaired several education-related committees within the IEEE CIS, where he also served as founding chair of task forces on benchmarking and on energy.


Image
John R. Woodward

Heriot Watt University, Dubai, UAE

John Woodward is Head of the School of Mathematical and Computer Science at Heriot Watt University in Dubai. He has organised workshops at GECCO including Metaheuristic Design Patterns and ECADA, Evolutionary Computation for the Automated Design of Algorithms which has run for 10+ years. He has also given tutorials on the same topic at PPSN, CEC, and GECCO. He has held a grant examining how Genetic Improvement techniques can be used to adapt scheduling software for airport runways. With his PhD Student, Saemundur Haraldsson (who this proposal is in collaboration with), won a best paper award in a GI workshop at GECCO. He has also organised a GI workshop at UCL as part of their very successful Crest Open Workshops. Woodward has previously given a tutorial at PPSN (http://ppsn2014.ijs.si/?show=tutorials#t6)