Co-evolving parasites improve simulated evolution as an optimization procedure
CNLS '89 Proceedings of the ninth annual international conference of the Center for Nonlinear Studies on Self-organizing, Collective, and Cooperative Phenomena in Natural and Artificial Computing Networks on Emergent computation
Genetic programming: on the programming of computers by means of natural selection
Genetic programming: on the programming of computers by means of natural selection
Foundations of genetic programming
Foundations of genetic programming
Art of Software Testing
Seeding Genetic Programming Populations
Proceedings of the European Conference on Genetic Programming
Search-based software test data generation: a survey: Research Articles
Software Testing, Verification & Reliability
The M5 Simulator: Modeling Networked Systems
IEEE Micro
Design and Analysis of Experiments
Design and Analysis of Experiments
On the possibilities of (pseudo-) software cloning from external interactions
Soft Computing - A Fusion of Foundations, Methodologies and Applications
Coevolving programs and unit tests from their specification
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Strongly typed genetic programming
Evolutionary Computation
Searching for resource-efficient programs: low-power pseudorandom number generators
Proceedings of the 10th annual conference on Genetic and evolutionary computation
ICSTW '08 Proceedings of the 2008 IEEE International Conference on Software Testing Verification and Validation Workshop
Evolutionary repair of faulty software
Applied Soft Computing
Fine-Grained timing using genetic programming
EuroGP'10 Proceedings of the 13th European conference on Genetic Programming
Search based software engineering: techniques, taxonomy, tutorial
Empirical Software Engineering and Verification
Evolutionary testing of autonomous software agents
Autonomous Agents and Multi-Agent Systems
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
Dynamic adaptive search based software engineering
Proceedings of the ACM-IEEE international symposium on Empirical software engineering and measurement
Search-based software engineering: Trends, techniques and applications
ACM Computing Surveys (CSUR)
Exploiting prior information in multi-objective route planning
PPSN'12 Proceedings of the 12th international conference on Parallel Problem Solving from Nature - Volume Part II
Evolutionary functional black-box testing in an industrial setting
Software Quality Control
Co-evolutionary automatic programming for software development
Information Sciences: an International Journal
Hi-index | 0.00 |
Optimising non-functional properties of software is an important part of the implementation process. One such property is execution time, and compilers target a reduction in execution time using a variety of optimisation techniques. Compiler optimisation is not always able to produce semantically equivalent alternatives that improve execution times, even if such alternatives are known to exist. Often, this is due to the local nature of such optimisations. In this paper we present a novel framework for optimising existing software using a hybrid of evolutionary optimisation techniques. Given as input the implementation of a program or function, we use Genetic Programming to evolve a new semantically equivalent version, optimised to reduce execution time subject to a given probability distribution of inputs. We employ a co-evolved population of test cases to encourage the preservation of the program's semantics, and exploit the original program through seeding of the population in order to focus the search. We carry out experiments to identify the important factors in maximising efficiency gains. Although in this work we have optimised execution time, other non-functional criteria could be optimised in a similar manner.