EPSRC logo

Details of Grant 

EPSRC Reference: EP/H020217/1
Title: Refactoring and Neutrality in Genetic Programming
Principal Investigator: Johnson, Dr C
Other Investigators:
Freitas, Professor A Thompson, Professor S
Researcher Co-Investigators:
Project Partners:
Department: Sch of Computing
Organisation: University of Kent
Scheme: Standard Research
Starts: 01 February 2010 Ends: 31 January 2013 Value (£): 305,240
EPSRC Research Topic Classifications:
Artificial Intelligence Fundamentals of Computing
Software Engineering
EPSRC Industrial Sector Classifications:
No relevance to Underpinning Sectors
Related Grants:
Panel History:
Panel DatePanel NameOutcome
20 Nov 2009 ICT Prioritisation Panel (Nov 09) Announced
Summary on Grant Application Form
Computer programming is difficult. Despite many years of experience, certain problems are very difficult for programmers to solve. To address this, researchers have developed methods where computers automatically create program code from a description of the problem to be solved. One of the most popular forms of automated program creation is called Genetic Programming (GP). In GP, a population of potential solutions is created, tested on the problem, and a new population created by processes inspired by biological evolution, such as genetic mutation and the crossover of genes between individuals. This process is repeated until an effective program is found.GP has proven effective in a number of areas: GP systems have created programs that are as good or better than those created by human programmers in a number of areas, such as robot control, bio-medical data analysis, and the design of electronic circuits. It has been applied in real-world technologies such as the design of antennas for satellites, the analysis of currency markets, improving the design of chemical engineering systems, and the detection of unexploded devices such as landmines. The aim of this project is to make GP more effective by including in the evolutionary process a technique that has risen to prominence in human-based software engineering, known as refactoring. Refactoring means changing the structure of computer programs without changing what they actually do. This is important in the development of software because it means that programs can be simplified and their structure made clearer before programmers work on changing the behaviour. By separating out these two aspects, the programming process is made clearer. These techniques have not been systematically applied to GP in the past.An important reason why this idea is likely to succeed is because it has already been shown that something called neutrality is important for evolution. Neutrality means that there are many more possible genes than there are proteins that can be created by those genes, and therefore one protein can be encoded for by many genes. During evolutionary history, many of the changes that occur are these neutral changes-changes to the genetic encoding, rather than the behaviour that results from that encoding. As part of the project we want to understand how this idea of neutrality can be used to understand the development of these computer programs during their evolution.Overall, we want to rigorously test whether this enhancement - refactoring - is capable of improving the efficiency and effectiveness of this increasingly important technology for the automated creation of computer programs.
Key Findings
This information can now be found on Gateway to Research (GtR) http://gtr.rcuk.ac.uk
Potential use in non-academic contexts
This information can now be found on Gateway to Research (GtR) http://gtr.rcuk.ac.uk
Description This information can now be found on Gateway to Research (GtR) http://gtr.rcuk.ac.uk
Date Materialised
Sectors submitted by the Researcher
This information can now be found on Gateway to Research (GtR) http://gtr.rcuk.ac.uk
Project URL:  
Further Information:  
Organisation Website: http://www.kent.ac.uk