University College London, UK
Title: Genetic Improvement of Programs
Genetic programming can optimise software, including: evolving test benchmarks, generating hyper-heuristics by searching meta-heuristics, generating communication protocols, composing web services, generating improved hashing and C++ heap managers, redundant programming and even automatic bug fixing. There may be many ways to trade off expenses (such as time, memory, energy) vs. functionality. Human programmers cannot try them all. Also the best multi-objective Pareto trade off may change with time, underlying hardware and network connection or user behaviour. It may be GP can automatically suggest different trade offs for each new market. Recent results include substantial speed up by evolving a new version of a program customised for a special case.