Bristol Meetups

Evolutionary Computing: What is it? What’s it for?

This month we present an opportunity to catch up on a session you may have missed from this year's ACCU Conference, which was held in Bristol in April. Christopher Simons presents a retitled version of a talk which was highly rated by conference delegates.

Evolutionary Computing: What is it? What’s it for?

Many software programming tasks involve making trade-off judgments between conflicting needs. Should my code be robust or fast? Should it be rock-solid or is the need to ship to market more pressing? Should the focus be on short-term expediency or respectful of longterm architectural needs? To balance the trade-offs, it’s typical for programmers to iterate over many possible solutions and evaluate them, incrementally moving through a number of possibilities until a satisfactory solution is found. With the recognition that what’s happening here is a manual search though a space of possibilities, could we not emulate this in evolving software? By building on the natural evolutionary process, the programmer can now see solutions that they might never have considered because of the sheer quantity of possibilities to explore. Actually, in the past five years, there’s been an explosion in evolutionary computing approaches to support the programmer, and they show great promise. It turns out that evolutionary computation been successfully applied to trade-offs not only in programming, but also automatic refactoring, automatic test case generation and even automatic bug-fixing. 

This case study starts with an explanation of evolutionary computing, and goes on to explain some of its fascinating and novel applications to trade-off judgments. Finally, the case study offers signposts to some available libraries and frameworks for programmers to get started with and so extend their programming skills in new directions. 

About our speaker:

As a Medical Laboratory Technician in the 80’s, Chris found himself increasingly automating laboratory tests when someone told him what he was actually doing was programming. As this was rather fun, Chris studied for his MSc in IT from Bristol Polytechnic in 1989. He became a software engineer, then architect, then agile methodology and design consultant and trainer, before then taking up a lectureship at the University of the West of England, Bristol in 2002. He was able to bring his software development experience to the emerging research field of artificial intelligence, and in 2011 obtained his PhD in interactive, evolutionary computation for early lifecycle software design. Chris now actively researches in the field of Search-Based Software Engineering (SBSE). Chris is proud to be a member of ACCU, the British Computer Society and is a Certified IT Professional. An overview of Chris’s research interests and his publications can be found at http://www.cems.uwe.ac.uk/~clsimons/