Author_Institution :
Dept. of Comput. Sci., Univ. Coll. London, London, UK
Abstract :
Genetic programming can optimise software, including: evolving test benchmarks, generating hyper-heuristics by searching meta-heuristics, generating communication protocols, composing telephony systems and web services, generating improved hashing and C++ heap managers, redundant programming and even automatic bug fixing. Particularly in embedded real-time or mobile systems, there may be many ways to trade off expenses (such as time, memory, energy, power consumption) 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.
Keywords :
Pareto optimisation; genetic algorithms; software performance evaluation; C++ heap managers; GP; Web services; automatic bug fixing; communication protocols; embedded real-time systems; genetic program improvement; genetic programming; human programmers; hyper-heuristics; improved hashing; meta-heuristics; mobile systems; multiobjective Pareto trade off; software optimisation; telephony systems; test benchmarks; Evolutionary computation; Genetic programming; Grammar; Graphics processing units; Software engineering; Automatic software re-engineering; Bowtie2; GP; GPGPU; SBSE; genetic programming; multiple objective exploration; search based software engineering;